我在 Python 中有 Pandas DataFrame,如下所示:
示例数据:
COL1 | COL2 | COL3
------|------|-------
var1 | xxx | 20
var2 | xxx | 10
var3 | yyy | 10
我有如下列表:
list_1 = ["var1", "var5"]
要求:
我需要
list_1
的值不存在于 DataFrame 的“COL1”中时,才将 list_1的值作为行添加到 DataFrame 中的“COL1”
欲望输出:
因此,基于我的示例 DataFrame 和
list_1
:,我需要类似下面的内容
COL1 | COL2 | COL3
------|------|-------
var1 | xxx | 20
var2 | xxx | 10
var3 | yyy | 10
var5 | yyy | 10
如何在 Python Pandas 中做到这一点?
一种方法是遍历列表并调用追加,例如:
for elem in list_1:
if elem not in df["COL1"].values:
df = df.append({"COL1": elem, "COL2": "yyy", "COL3": 10}, ignore_index=True)
concat
:
out = pd.concat([df, pd.DataFrame({'COL1': list(set(list_1).difference(df['COL1']))}
).assign(COL2='yyy', COL3=10)])
输出:
COL1 COL2 COL3
0 var1 xxx 20
1 var2 xxx 10
2 var3 yyy 10
0 var5 yyy 10