[英]Add multiple columns at once to multiindex Pandas dataframe
我有一個數據框多索引熊貓數據框df
First Foo Bar
Second Begin Begin
1 5 1
2 4 4
3 6 6
我想添加兩列同名
First Foo Bar
Second Begin End Begin End
1 5 1 1 2
2 4 5 4 4
3 6 7 6 7
從這個來源( new
):
First Foo Bar
1 1 2
2 5 4
3 7 7
我試過df[:] = new[:]
但這只返回 NaN
另一種方法是使用類似 for 循環的方法,但這不是 Pandas 的方法。 在網上搜索並沒有給我任何解決這個問題的見解。
如何將具有相同名稱和形狀的新列添加到多索引 Pandas 數據框的每個第一級?
編輯:
這種方法df[('Foo', 'End')] = new['Foo'] df[('Bar', 'End')] = new['Bar']
不是一個選項,因為在我的實際問題中有不是要添加兩列,而是數百列。
Tuples
傳遞,例如df[('Foo', 'End')]
。import pamadas as pd
# test data
col = pd.MultiIndex.from_arrays([['Foo', 'Bar'], ['Begin', 'Begin']], names=['First', 'Second'])
df = pd.DataFrame([[5, 1], [4, 4], [6, 6]], columns=col)
new = pd.DataFrame({'Foo': [1, 5, 7], 'Bar': [2, 4, 7]})
# write new columns
df[('Foo', 'End')] = new['Foo']
df[('Bar', 'End')] = new['Bar']
# display(df)
First Foo Bar Foo Bar
Second Begin Begin End End
0 5 1 1 2
1 4 4 5 4
2 6 6 7 7
col
, new
列名,必須對應於df
的頂級列名。for col in new.columns:
df[(col, 'new col name')] = new[col]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.