我有一段看起来像这样的代码:
import pandas as pd
file = pd.read_csv("/my/path/to/spreadsheet.csv", index_col=0)
file = file.dropna(how="any", inplace=True)
file = file.fillna("", inplace=False)
print(file)
预期输出:
Profit ($) Spendings ($) Total Profit EOY Profit ($)
Month
Jan 200 80 120 3150
Feb 310 50 260
Mar 250 40 210
Apr 170 70 100
May 650 200 450
Jun 180 150 30
Jul 530 160 370
Aug 610 270 340
Sep 470 180 290
Oct 680 290 390
Nov 570 310 260
Dec 600 270 330
当前输出:
回溯(最近通话最近): 在第5行的“ /my/path/to/OpenSheet.py”文件中 文件= file.fillna(“”,inplace = False) AttributeError:“ NoneType”对象没有属性“ fillna”
我了解这意味着当我执行file = file.dropna(how="any", inplace=True)
时,它以某种方式变成了NoneType
对象,但是为什么会这样?
还有,谁能告诉我如何获得预期的输出?
答案 0 :(得分:0)
这是因为inplace=True
参数就地修改了您的参数,这意味着函数返回了None
。将其更改为
import pandas as pd
file = pd.read_csv("/my/path/to/spreadsheet.csv", index_col=0)
file.dropna(how="any", inplace=True)
file = file.fillna("", inplace=False)
print(file)
此外,看来您的EOY Profit
列将导致几乎所有行都被删除:
file.dropna(how="any", inplace=True)
file
EOY_Profit Month Profit Spendings Total_Profit
0 3150 Jan 200 80 120
所以我只想完全避免使用dropna
行
file = pd.read_csv("/my/path/to/spreadsheet.csv", index_col=0)
file = file.fillna("", inplace=False)
EOY_Profit Month Profit Spendings Total_Profit
0 3150 Jan 200 80 120
1 Feb 310 50 260
2 Mar 250 40 210
3 Apr 170 70 100
4 May 650 200 450
5 Jun 180 150 30
6 Jul 530 160 370
7 Aug 610 270 340
8 Sep 470 180 290
9 Oct 680 290 390
10 Nov 570 310 260
11 Dec 600 270 330