请问这段代码哪里出错了
请问这段代码哪里出错了,我想筛选出”会计科目“这一列数值等于”投资收益“,”经营收入“,”其他收入“等这些数据应该怎么写import pandas as pd
df = pd.read_excel(r'C:\Users\baoch\Desktop\test\财务收支公开明细表.XLSX',header =8)
#nrows = df.shape
#print(nrows)
df2 = df.str.contains('其他收入')]
print(df2)
错误信息如下:
C:\Users\baoch\AppData\Local\Programs\Python\Python38\python.exe C:/Users/baoch/Desktop/test/提取收入明细.py
Traceback (most recent call last):
File "C:/Users/baoch/Desktop/test/提取收入明细.py", line 5, in <module>
df2 = df.str.contains('其他收入')]
File "C:\Users\baoch\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\frame.py", line 2790, in __getitem__
if com.is_bool_indexer(key):
File "C:\Users\baoch\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\common.py", line 136, in is_bool_indexer
raise ValueError(na_msg)
ValueError: Cannot mask with non-boolean array containing NA / NaN values
Process finished with exit code 1 哪位大神指点下 import pandas as pd
df = pd.read_excel(r'C:\Users\baoch\Desktop\test\财务收支公开明细表.XLSX',header =8)
#nrows = df.shape
#print(nrows)
df2 = df.str.contains('其他收入')]
print(df2) 不要用#,删掉 Pythonbn 发表于 2020-4-3 10:33
不要用#,删掉
删掉就能正确运行吗? zltzlt 发表于 2020-4-3 13:11
删掉就能正确运行吗?
是的,我在网上看过 Pythonbn 发表于 2020-4-3 14:46
是的,我在网上看过
兄嘚,你的答案貌似有点离谱啊{:10_245:},我加“#”,是因为那两句不需要运行,我就是写出来以防万一要用到。不过谢谢你的回答,我已经测试出来了。后面加上恒等于1就行了,df2 = df.str.contains('其他收入')==1] 要我帮忙吗?
你那种方法我是没用过,我一般这么提取,某一列值判断是否等于某一值然后提取
df.loc].isin([”投资收益“,”经营收入“,”其他收入“])
Chysial 发表于 2020-4-3 21:43
要我帮忙吗?
你那种方法我是没用过,我一般这么提取,某一列值判断是否等于某一值然后提取
df.loc
你这个方法是同时满足这三个条件还是满足其中一个就可以提取啊 脚印拾零 发表于 2020-4-11 20:11
你这个方法是同时满足这三个条件还是满足其中一个就可以提取啊
满足一个就可以
页:
[1]