【发布时间】:2015-09-24 02:59:32
【问题描述】:
我有一个包含几列的数据框。这是一个例子:
A B C D MachineCall F
0 1 2013-01-02 1 3 Machine1 foo
1 1 2013-01-02 1 3 Machine2 foo
2 1 2013-01-02 1 3 Machine3 foo
3 1 2013-01-02 1 3 Machine1 foo
我想创建一个仅使用 Machine1 行中的数据的新数据框。我不想更改列的顺序。
我试过了
df2 = df2[(df2 == 'Machine1')]
出错了
TypeError: Could not compare ['Machine1'] with block values:
和
df2 = df2[(df2'MachineCall'].isin('Machine1')]
得到了
TypeError: only list-like objects are allowed to be passed to Series.isin(), you passed a 'str'
【问题讨论】:
-
你的标题不应该是“过滤器”而不是“排序”吗?
-
是的,我可以改变它。不过,不确定这个问题是否仍然对其他人有帮助。
-
关于您的错误,第一个错误可能是因为您试图将包含混合 dtype 列的 df 与 str 进行比较,但是当 dtypes 不匹配时,这会出错,对于第二个错误,它很漂亮清楚,它应该是一个包含单个元素的列表:
df2 = df2[(df2'MachineCall'].isin(['Machine1'])]
标签: python pandas dataframe typeerror