加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-将列重新排列到熊猫的下一行

发布时间:2020-12-17 17:39:53 所属栏目:Python 来源:网络整理
导读:我有一个以下格式的数据框: ID A B C D E FW1 a1 b1 c1 d1 e1 f1W2 a2 b2 c2 d2 e2 f2W3 a3 b3 c3 d3 e3 f3W4 a4 b4 c4 d4 e4 f4W5 a5 b5 c5 d5 e5 f5W6 a6 b6 c6 d6 e6 f6 如果我想获得以下格式.使用熊猫. ID A B E FW1 a1 b1 e1 f1W1 c1 d1 e1 f1W2 a2 b2

我有一个以下格式的数据框:

ID   A    B    C     D     E     F
W1   a1   b1   c1    d1    e1    f1
W2   a2   b2   c2    d2    e2    f2
W3   a3   b3   c3    d3    e3    f3
W4   a4   b4   c4    d4    e4    f4
W5   a5   b5   c5    d5    e5    f5
W6   a6   b6   c6    d6    e6    f6

如果我想获得以下格式.使用熊猫.

ID   A    B    E     F
W1   a1   b1   e1    f1
W1   c1   d1   e1    f1
W2   a2   b2   e2    f2
W2   c2   d2   e2    f2
W3   a3   b3   e3    f3
W3   c3   d3   e3    f3
W4   a4   b4   e4    f4
W4   c4   d4   e4    f4
W5   a5   b5   e5    f5
W5   c5   d5   e5    f5
W6   a6   b6   e6    f6
W6   c6   d6   e6    f6

然后将此数据帧分解为多个数据帧,以将第1列作为文件名写入单个csv文件.

W1.csv

W1   a1   b1   e1    f1
W1   c1   d1   e1    f1 

W2.csv

W2   a2   b2   e2    f2
W2   c2   d2   e2    f2

W3.csv

W3   a3   b3   e3    f3
W3   c3   d3   e3    f3

W4.csv

W4   a4   b4   e4    f4
W4   c4   d4   e4    f4

W5.csv

W5   a5   b5   e5    f5
W5   c5   d5   e5    f5

W6.csv

W6   a6   b6   e6    f6
W6   c6   d6   e6    f6
最佳答案
如果确定C-> A和D-> B,则可以重新合并帧,然后填充.通常,d仅需要将要移动的列与应该放置在其下的列相关联.

d = dict(C='A',D='B')
u = df[[*d]].copy()
f = df.drop([*d],axis=1)

g = pd.concat([f,u.rename(columns=d)],sort=False).sort_index().ffill().groupby('ID')

现在,您可以选择使用g将每个单独的帧写入文件:

for _,group in g:
    print(group,end='nn')
   ID   A   B   E   F
0  W1  a1  b1  e1  f1
0  W1  c1  d1  e1  f1

   ID   A   B   E   F
1  W2  a2  b2  e2  f2
1  W2  c2  d2  e2  f2

   ID   A   B   E   F
2  W3  a3  b3  e3  f3
2  W3  c3  d3  e3  f3

   ID   A   B   E   F
3  W4  a4  b4  e4  f4
3  W4  c4  d4  e4  f4

   ID   A   B   E   F
4  W5  a5  b5  e5  f5
4  W5  c5  d5  e5  f5

   ID   A   B   E   F
5  W6  a6  b6  e6  f6
5  W6  c6  d6  e6  f6

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读