【发布时间】:2018-11-16 08:30:12
【问题描述】:
我有一个使用 pandas 创建的 DataFrame,并希望根据原始表创建新表,但根据某些条件进行过滤。
df = pd.DataFrame(
[['Y', 'Cat', 'no', 'yes', 6],
['Y', 4, 7, 9, 'dog'],
['N', 6, 4, 6, 'pig'],
['N', 3, 6, 'beer', 8]],
columns = ('Data', 'a', 'b', 'c', 'd')
)
我的条件不起作用:
if (df['Data']=='Y') & (df['Data']=='N'):
df3=df.loc[:,['Data', 'a', 'b', 'c']]
else:
df3=df.loc[:,['Data', 'a', 'b']]
我希望新表包含符合以下条件的数据:
如果df.Data 的值为“Y”和“N”,则新表获取列('Data', 'a', 'b')
如果没有,新表获取列('Data', 'a', 'b', 'c')
Data a b
0 Y Cat no
1 Y 4 7
2 N 6 4
3 N 3 6
Data a b c
0 Y Cat no yes
1 Y 4 7 9
2 Y 6 4 6
3 Y 3 6 beer
【问题讨论】:
-
您的第一个输出有
Y和N,但没有c列,而第二个输出只有Y,但它有c列。这与您的口头描述不同。 -
是的,感谢您的评论。我编辑了它。
标签: python pandas conditional-statements