我有一個資料框:
Border #1 [from] Border #1 [to] Border #2 [from] Border #2 [to]
index
0 BE BE_AL PL SK
1 BE BE_AL PL SK
我想將每兩列連接成一列(我有更多列),所需的結果:
Border #1 Border #2
index
0 BE_BE_AL PL_SK
1 BE_BE_AL PL_SK
對于一列,我可以這樣做:
df['Border#1']=df['Border #1 [from]'] '_' df['Border #1 [to]']
但是我該如何為多列做呢?
uj5u.com熱心網友回復:
創建MutliIndexby split by[與空間,因此可以選擇兩個級別 byDataFrame.xs和 join by :
df.columns = df.columns.str.strip(']').str.split('\s \[', expand=True)
print (df)
Border #1 Border #2
from to from to
0 BE BE_AL PL SK
1 BE BE_AL PL SK
print (df.columns)
MultiIndex([('Border #1', 'from'),
('Border #1', 'to'),
('Border #2', 'from'),
('Border #2', 'to')],
)
df = df.xs('from', axis=1, level=1) '_' df.xs('to', axis=1, level=1)
print (df)
Border #1 Border #2
0 BE_BE_AL PL_SK
1 BE_BE_AL PL_SK
uj5u.com熱心網友回復:
您可以對列進行分組并制作一個新的資料框
groups = df.columns.str.replace(' \[. \]', '', regex=True)
df2 = pd.concat({g: d.apply('_'.join, axis=1)
for g,d in df.groupby(groups, axis=1)}, axis=1)
輸出:
Border #1 Border #2
index
0 BE_BE_AL PL_SK
1 BE_BE_AL PL_SK
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369413.html
下一篇:如何計算熊貓資料框中的列?
