这是我拥有的数据的例子
1, "dep, anxiety", 30
2, "dep" , 40
4, "stress" , 30
7, "dep, fobia" , 20
我想使用pandas来过滤具有" dep"并将其保存在新的cvs文件中。输出应该是:
1, "dep, anxiety", 30
7, "dep, fobia" , 20
2, "dep" , 40
这是我的代码:
import pandas as pd
patients = pd.read_csv("patients.csv", encoding='latin-1')
print(patients["dep" in patients["qual"]])
有以下错误
"return self._engine.get_loc(self._maybe_cast_indexer(key))"
我不知道如何将提取的数据导出到新的csv文件。
答案 0 :(得分:1)
你可以这样做:
In [213]: patients
Out[213]:
ID dis rank
0 1 dep, anxiety 30
1 2 dep 40
2 4 stress 30
3 7 dep, fobia 20
In [214]: patients[(patients['dis'].str.contains('dep')) & (patients['rank'] == 30)]
Out[214]:
ID dis rank
0 1 dep, anxiety 30
PS rank
是一个pandas方法,所以你不能使用点列(df.column_name
)访问器,因为pandas会认为你正在调用NDFrame.rank
方法:
演示:
这里我们称之为NDFrame.rank
方法的引用:
In [215]: patients.rank
Out[215]:
<bound method NDFrame.rank of ID dis rank
0 1 dep, anxiety 30
1 2 dep 40
2 4 stress 30
3 7 dep, fobia 20>
我们在此致电rank
栏:
In [216]: patients['rank']
Out[216]:
0 30
1 40
2 30
3 20
Name: rank, dtype: int64