2 回答

TA貢獻1825條經驗 獲得超4個贊
您的 DataFrame 在“空”單元格中沒有NaN,所以我假設:
每列的dtype是object(實際上是string),
“空”單元格包含空字符串或空格。
在這種情況下,一種可能的解決方案是:
用NaN替換空字符串/空格,
調用填充。
就像是:
df['D'] = df.A.replace(r'^\s*$', np.nan, regex=True).ffill()
編輯
如果要“向下復制”的值可以在任何列中(不僅在A中),那么解決方案是:
df['D'] = df.replace(r'^\s*$', np.nan, regex=True).ffill(axis=1)\ .iloc[:, -1].ffill()
與Anky在他的評論中提出的類似。

TA貢獻1836條經驗 獲得超3個贊
基于@Mohit Motwani 評論的完整答案:
import pandas as pd
df = pd.DataFrame([[1, None, None], [None]*3,[None]*3,
[2,None,None], [None]*3,
[3,None,None], [None]*3, [None]*3, [None]*3,],
columns=["A","B","C"] )
print(df)
df["D"] = df["A"].ffill()
print(df)
之前的輸出:
A B C
0 1.0 None None
1 NaN None None
2 NaN None None
3 2.0 None None
4 NaN None None
5 3.0 None None
6 NaN None None
7 NaN None None
8 NaN None None
輸出后:
A B C D
0 1.0 None None 1.0
1 NaN None None 1.0
2 NaN None None 1.0
3 2.0 None None 2.0
4 NaN None None 2.0
5 3.0 None None 3.0
6 NaN None None 3.0
7 NaN None None 3.0
添加回答
舉報