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