[英]How to replace all rows of a dataframe with Pandas?
我正在尝试用 2 列数据框中的NaN
替换100
,但由于某种原因,它只替换了第一列的前 3 行。 可能是什么原因?
这是我的代码和输出:
print('Before', df, type(df))
df = df.replace(100, np.nan)
print('After', df)
Before A B
2020-09-17 00:00:00+00:00 100.000000 NaN
2020-09-18 00:00:00+00:00 100.000000 NaN
2020-09-18 01:00:00+00:00 100.000000 NaN
2020-09-18 02:00:00+00:00 100.000000 NaN
2020-09-18 03:00:00+00:00 100.000000 NaN
... ... ...
2020-10-03 04:00:00+00:00 99.916528 96.116235
2020-10-03 05:00:00+00:00 99.933531 95.525355
2020-10-03 06:00:00+00:00 99.942923 95.756569
2020-10-03 07:00:00+00:00 99.940998 95.721852
2020-10-03 08:00:00+00:00 99.941141 95.099550
[370 rows x 2 columns]
<class 'pandas.core.frame.DataFrame'>
After A B
2020-09-17 00:00:00+00:00 NaN NaN
2020-09-18 00:00:00+00:00 NaN NaN
2020-09-18 01:00:00+00:00 NaN NaN
2020-09-18 02:00:00+00:00 100.000000 NaN
2020-09-18 03:00:00+00:00 100.000000 NaN
... ... ...
2020-10-03 04:00:00+00:00 99.916528 96.116235
2020-10-03 05:00:00+00:00 99.933531 95.525355
2020-10-03 06:00:00+00:00 99.942923 95.756569
2020-10-03 07:00:00+00:00 99.940998 95.721852
2020-10-03 08:00:00+00:00 99.941141 95.099550
当我打印df['A']
它说 dtype 是float64
所以我不知道如何解决这个问题。 并且遍历列也不会给出预期的结果。
for col in df:
df[col] = df[col].replace(100, np.nan)
非替换值当然是那些不完全是100 的值。
Pandas 对浮点数的默认表示是小数点后 6 位。 尝试将其扩展(例如扩展到 20 位数字):
pd.set_option("display.float_format", "{:.20f}".format)
在显示您的数据框以查看那些不准确的值之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.