簡體   English   中英

Python Pandas:將所有其他列值附加到前3列

[英]Python Pandas: Append all other column values to first 3 columns

我試圖將所有列值附加到前三列,但找不到任何方法。

輸入:

cv              cv      new_col       mg                mg  new_col sa              sa   new_col
5g              5g      cv            0% zinsen         zin mg      a-series-owner  ase  sa
2xopticalcam2x  zoom     cv           24 hour battery   hba mg      all             all  sa

預期輸出:

cv          cv   new_col        
5g              5g       cv           
2xopticalcam2x  zoom     cv           
0% zinsen       zin      mg
24 hour battery hba      mg
a-series-owner  ase      sa
all             all      sa

我的方法:

oneCol = []
colLength = len(df)
for k in range(colLength):
    oneCol.append(df[k])

combined = pd.concat(oneCol, ignore_index=True)

print(combined)

但我沒有得到預期的輸出。

聯合會

step = 3
df = pd.concat([pd.DataFrame(df.iloc[:, x:x+step].values)\
                             for x in range(0, len(df.columns), step)], 
               sort=True, 
               ignore_index=True)

                 0     1   2
0               5g    5g  cv
1   2xopticalcam2x  zoom  cv
2        0% zinsen   zin  mg
3  24 hour battery   hba  mg
4   a-series-owner   ase  sa
5              all   all  sa

您可以通過DataFrame.set_axis創建默認列名稱來更改先前的答案

df = pd.concat([v.set_axis(range(len(v.columns)), inplace=False, axis=1).assign(new_col=k)
                 for k, v in df.groupby(axis=1, level=0)], axis=0)

或者如果每組總是3個值:

df1 = pd.DataFrame(df.values.reshape(-1, 3))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM