我有 2 個資料框
df_1:
Week Day Coeff_1 ... Coeff_n
1 1 12 23
1 2 11 19
1 3 23 68
1 4 57 81
1 5 35 16
1 6 0 0
1 7 0 0
...
50 1 12 23
50 2 11 19
50 3 23 68
50 4 57 81
50 5 35 16
50 6 0 0
50 7 0 0
df_2:
Week Day Coeff_1 ... Coeff_n
1 1 0 0
1 2 0 0
1 3 0 0
1 4 0 0
1 5 0 0
1 6 56 24
1 7 20 10
...
50 1 0 0
50 2 0 0
50 3 0 0
50 4 0 0
50 5 0 0
50 6 10 84
50 7 29 10
在第一個資料框中,df_1我有周一到周五的系數。在第二個資料框中,df_2我有周末的系數。我的目標是合并兩個資料幀,這樣我就不再有 0 個過時的值。
做到這一點的最佳方法是什么?我發現使用df.replace似乎是一個好方法
uj5u.com熱心網友回復:
假設你dataframes遵循相同的結構,你可以利用pandas的功能align automatically on indexes。因此,你可以replace 0的用np.nan在DF1,然后使用fillna:
df1.replace({0:np.nan},inplace=True)
df1.fillna(df2)
Week Day Coeff_1 Coeff_n
0 1.0 1.0 12.0 23.0
1 1.0 2.0 11.0 19.0
2 1.0 3.0 23.0 68.0
3 1.0 4.0 57.0 81.0
4 1.0 5.0 35.0 16.0
5 1.0 6.0 56.0 24.0
6 1.0 7.0 20.0 10.0
7 50.0 1.0 12.0 23.0
8 50.0 2.0 11.0 19.0
9 50.0 3.0 23.0 68.0
10 50.0 4.0 57.0 81.0
11 50.0 5.0 35.0 16.0
12 50.0 6.0 10.0 84.0
13 50.0 7.0 29.0 10.0
uj5u.com熱心網友回復:
您不能將第 1-5 天的 df_1 行附加到第 6-7 天的 df_2 行嗎?
df_3 = df_1[df_1.Day.isin(range(1,6))].append(df_2[df_2.Day.isin(range(6,8))])
要獲得正常排序,您可以按周和天對值進行排序:
df_3.sort_values(['Week','Day'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/390641.html
標籤:熊猫
上一篇:熊貓findall()可以回傳str而不是list嗎?
下一篇:使用numpy陣列檢查多個條件
