繁体   English   中英

如何用 Pandas 替换数据帧的所有行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM