[英]How to forward propagate/fill a specific value in a Pandas DataFrame Column/Series?
[英]Filter column by float value in pandas dataframe, and fill-forward
我有這個 dataframe:
difer length
0 0.11 4
1 NaN 6
2 01_00532 54
3 NaN 32
4 NaN 12
5 0.10 12
6 Nan 123
我想用浮點值替換difer
列中的所有其他值。 因此,將所有值更改為 0.11,直到下一個浮點值 (0.10),然后用 0.10 重復此操作。
difer length
0 0.11 4
1 0.11 6
2 0.11 54
3 0.11 32
4 0.11 12
5 0.10 12
6 0.10 123
對於第一部分(過濾列),我發現了一個類似的問題來過濾浮點值。
該人建議使用pd.to_numeric
和 boolean 索引,但我不知道他為什么以這種形式df.SIC
寫列名。 它對我不起作用:
df[pd.to_numeric(df.SIC, errors='coerce').isnull()]
對於第二部分(如何將所有值更改為 0.11 直到下一個浮點值(0.10)並用 0.10 重復),我不知道。
在您的列上使用pd.to_numeric
, errors='coerce'
將用NaN
填充所有非數值,最后使用ffill
向前填充列。
df['difer'] = pd.to_numeric(df['difer'], errors='coerce').ffill()
Output
difer length
0 0.11 4
1 0.11 6
2 0.11 54
3 0.11 32
4 0.11 12
5 0.10 12
6 0.10 123
筆記:
通過df.difer
或df['difer']
訪問列沒有區別。 僅當您在列名中有空格時,這才會導致問題。 在這種情況下使用后者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.