熊猫:如果列表中的项目等于列值,请追加

时间:2019-10-21 14:55:28

标签: python pandas dataframe

我对使用python3 / pandas的某些代码有疑问。

我有一个清单

mylist = [2,6,7]

和一个数据框

import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})

现在,我要检查mylist的项是否等于C中列df的值。如果是这样,请使用给出匹配项的行创建一个新的df2

col = ["A", "B", "C", "D"]
df2 = pd.DataFrame(columns=col)
for x in mylist:
    if len(df.loc[df['C'] == x])>=1:
        df2.append(df.loc[df['C'] == x])

不幸的是,这不起作用(我没有得到任何输出)。 我的预期输出(df2)将是:

index   A   B       C   D
2       foo two     2   4
6       foo one     6   12
7       foo three   7   14

1 个答案:

答案 0 :(得分:0)

您只需要指定您希望df2等于您的append语句:

df2 = df2.append(df.loc[df['C'] == x])