[英]pandas groupby to new columns
我有下表
團體 | 價值 | 姓名 |
---|---|---|
1 | 1.1 | AAAA |
1 | 1.2 | BBBB |
2 | 1.4 | 中國交建 |
2 | 1.6 | DDDD |
3 | 0.4 | 電子電氣設備 |
3 | 0.3 | FFFF |
我想通過按組 ID 分組將表格轉換為以下內容:
團體 | 值_1 | 名稱_1 | 價值_2 | 名稱_2 |
---|---|---|---|---|
1 | 1.1 | AAAA | 1.2 | BBBB |
2 | 1.4 | 中國交建 | 1.6 | DDDDDD |
3 | 0.4 | 電子電氣設備 | 0.3 | FFFF |
現在一個解決方案,假設每組只有兩行是好的,但如果可能的話,我希望看到一個超過兩行的解決方案。
為每個組添加一個計數器,然后取消堆疊:
df_wide = (df.assign(count=(df.groupby("Group").cumcount() + 1).astype(str))
.set_index(["Group", "count"])
.unstack("count")
.sort_index(axis=1, level=1))
df_wide.columns = df_wide.columns.map('{0[0]}_{0[1]}'.format)
df_wide
Name_1 Value_1 Name_2 Value_2
Group
1 AAAA 1.1 BBBB 1.2
2 CCCC 1.4 DDDD 1.6
3 EEEE 0.4 FFFF 0.3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.