![](/img/trans.png)
[英]Pandas: How to merge two data frames and fill NaN values using values from the second data frame
[英]How can I fill data frames with NAN with same values of previous data frames from the same list
我有一個數據幀列表, A
大多數是 NAN 數據幀,其中一些不是,我想用列表中先前數據幀(不包含 NAN)的相同值填充所有 NAN 數據幀。 這是一個小例子:
A=[]
data = {'set_of_numbers': [1,2,3,4,4,5,9]}
df1 = pd.DataFrame(data,columns=['set_of_numbers'])
data2 = {'set_of_numbers': [0,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]}
df2 = pd.DataFrame(data2,columns=['set_of_numbers'])
data3 = {'set_of_numbers': [3,3,3,8,4,5,8]}
df3 = pd.DataFrame(data3,columns=['set_of_numbers'])
data4 = {'set_of_numbers': [0,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]}
df4 = pd.DataFrame(data4,columns=['set_of_numbers'])
A.append(df1)
A.append(df2)
A.append(df3)
A.append(df4)
A
我想在第二張圖片中顯示輸出,其中所有 nan 數據幀都填充了先前數據幀的值
如果我理解正確:
for i, df in enumerate(A):
df[df.isnull()] = A[i-1]
或者如果您想更改以前非 nan df 的 dtype:
for i, df in enumerate(A):
if df.isnull().all().all():
A[i] = A[i-1].copy()
根據 OP 對問題的編輯:
for i, df in enumerate(A):
if df.isnull().any().any():
A[i] = A[i-1].copy()
輸出:
[ set_of_numbers
0 1
1 2
2 3
3 4
4 4
5 5
6 9, set_of_numbers
0 1
1 2
2 3
3 4
4 4
5 5
6 9, set_of_numbers
0 3
1 3
2 3
3 8
4 4
5 5
6 8, set_of_numbers
0 3
1 3
2 3
3 8
4 4
5 5
6 8]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.