簡體   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