在 python 2.7、OSX 上使用 pandas 0.16.2。
我从 csv 文件中读取数据框,如下所示:
import pandas as pd
data = pd.read_csv("my_csv_file.csv",sep='\t', skiprows=(0), header=(0))
的输出data.dtypes
is:
name object
weight float64
ethnicity object
dtype: object
我期待名称和种族的字符串类型。但我在这里找到了为什么它们在较新的 pandas 版本中是“对象”的原因。
现在,我想根据种族选择行,例如:
data[data['ethnicity']=='Asian']
Out[3]:
Empty DataFrame
Columns: [name, weight, ethnicity]
Index: []
我得到相同的结果data[data.ethnicity=='Asian']
or data[data['ethnicity']=="Asian"]
.
但是当我尝试以下操作时:
data[data['ethnicity'].str.contains('Asian')].head(3)
我得到了我想要的结果。
但是,我不想使用“包含” - 我想检查是否直接相等。
请注意data[data['ethnicity'].str=='Asian']
引发错误。
难道我做错了什么?如何正确地做到这一点?