假設有兩個資料框df1和df2,列數相同,但行數不同,例如:
df1 = pd.DataFrame([(1,2),(3,4),(5,6),(7,8),(9,10),(11,12)], columns=['a','b'])
a b
1 1 2
2 3 4
3 5 6
4 7 8
5 9 10
6 11 12
df2 = pd.DataFrame([(100,200),(300,400),(500,600)], columns=['a','b'])
a b
1 100 200
2 300 400
3 500 600
我想添加df2到 df1 尾部 ( df1.loc[df2.shape[0]:]),從而獲得:
a b
1 1 2
2 3 4
3 5 6
4 107 208
5 309 410
6 511 612
任何的想法?謝謝!
uj5u.com熱心網友回復:
如果存在更多的行中df1像df2的行是可能的使用DataFrame.iloc與轉換值,為避免對準numpy的陣列(不同索引創建NaN多個):
df1.iloc[-df2.shape[0]:] = df2.to_numpy()
print (df1)
a b
0 1 2
1 3 4
2 5 6
3 107 208
4 309 410
5 511 612
對于在 Dataframerename和 中使用具有唯一索引的任意數量的行的通用解決方案DataFrame.add:
df = df1.add(df2.rename(dict(zip(df2.index[::-1], df1.index[::-1]))), fill_value=0)
print (df)
a b
0 1.0 2.0
1 3.0 4.0
2 5.0 6.0
3 107.0 208.0
4 309.0 410.0
5 511.0 612.0
uj5u.com熱心網友回復:
怎么樣:
idx = df1.shape[0] - df2.shape[0]
df1[idx:] = df1[idx:].values df2.values
輸出:
a b
0 1 2
1 3 4
2 5 6
3 107 208
4 309 410
5 511 612
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383067.html
上一篇:條件下每組的標準偏差
