我有以下代码,最后一次使用是在几个月前:
opendf = pd.DataFrame(
rdbin[0],
columns=[
"highpoint_sum",
"highpoint_mean",
"highpoint diff_sum",
"highpoint diff_mean",
"name",
"bin",
],
)
opendf.index = opendf["bin"]
opendf.drop(
columns=["highpoint_sum", "highpoint_mean", "highpoint diff_mean", "name", "bin"],
inplace=True,
)
opendf["Bresser_sum"] = brbinarr[:, 2]
opendf["open gauge_sum"] = rdbin[21][:, 2]
opendf["br_open_sum"] = opendf[["Bresser_sum", "open gauge_sum"]].sum(
axis=1, min_count=1
)
当cols 'Bresser_sum'和'open gauge_sum'都是NaN时,它会导致列'br_open_sum'具有NaN。
highpoint diff_sum Bresser_sum open gauge_sum br_open_sum
bin
2021-07-19 00:00:00 0.0 NaN NaN None
2021-07-19 01:00:00 0.0 NaN NaN None
2021-07-19 02:00:00 0.0 NaN NaN None
2021-07-19 03:00:00 0.0 NaN NaN None
2021-07-19 04:00:00 0.0 NaN NaN None
2021-07-19 05:00:00 0.0 NaN NaN None
2021-07-19 06:00:00 0.0 NaN NaN None
2021-07-19 07:00:00 0.0 NaN NaN None
2021-07-19 08:00:00 0.0 NaN NaN None
2021-07-19 09:00:00 0.0 NaN NaN None
2021-07-19 10:00:00 0.0 NaN NaN None
2021-07-19 11:00:00 0.0 0 NaN 0
2021-07-19 12:00:00 0.0 0.0 NaN 0.0
2021-07-19 13:00:00 0.0 0.0 NaN 0.0
2021-07-19 14:00:00 0.0 0.0 NaN 0.0
2021-07-19 15:00:00 0.0 0.0 NaN 0.0
2021-07-19 16:00:00 0.0 0.0 NaN 0.0
2021-07-19 17:00:00 0.0 0.0 NaN 0.0
2021-07-19 18:00:00 0.0 0.0 NaN 0.0
2021-07-19 19:00:00 0.0 0.0 NaN 0.0
2021-07-19 20:00:00 0.0 0.0 NaN 0.0
2021-07-19 21:00:00 0.0 0.0 NaN 0.0
2021-07-19 22:00:00 0.0 0.0 NaN 0.0
2021-07-19 23:00:00 0.0 0.0 NaN 0.0
现在,当我在数据没有任何变化的情况下运行代码时,但是我已经从python3.9升级到了3.11,我在列中得到'None'(一个NoneType对象)(如上所示)
我如何让.sum()语句返回到以前的行为?我已经阅读了文档pandas dataframe.sum(),并尝试了skipna,numeric_only和min_count的所有组合。
用NaN替换'None'是另一种选择,我尝试使用.fillna(),但它抛出了大量错误!
1条答案
按热度按时间k10s72fa1#
使用以下玩具数据框:
您可以使用Pandas to_numeric方法转换
None
值: