gpt4 book ai didi

python - 在Python中将多列转换为行

转载 作者:行者123 更新时间:2023-12-01 01:33:35 24 4
gpt4 key购买 nike

我有一个严重嵌套的 json 文件,我已将其展平并得到输出,如下所示,其中一列中包含行,并附有数值。有什么方法可以删除它并将它们按行排列,如输出所示
输入文件

102_ip_addr, 102_ip_family, 102_ip_mask_addr, 102_email,    102_failed_attempts,103_ip_addr, 103_ip_family, 103_ip_mask_addr, 103_email,    103_failed_attempts,
3705824725, 2, 4294967295, abc@xyz.com, 0,3705824825, 4, 4294967625, sdf@xyz.com, 0

输出:

ip_addr, ip_family, ip_mask_addr, email, failed_attempts
3705824725, 2, 4294967295, abc@xyz.com, 0
3705824825, 4, 4294967625, sdf@xyz.com, 0

最佳答案

如果每个新行的宽度固定为 5 ,您可以使用 reshape

pd.DataFrame(df.values.reshape(-1,5),columns=['addr','family','mask_addr','email','attempts'])
Out[580]:
addr family mask_addr email attempts
0 3705824725 2 4294967295 abc@xyz.com 0
1 3705824825 4 4294967625 sdf@xyz.com 0

更新

df.columns=df.columns.str.split('_',1).str[1]

df.melt().assign(newrow=lambda x : x.groupby(x['variable']).cumcount() ).pivot('newrow','variable','value')
Out[596]:
variable email failed_attempts ip_addr ip_family ip_mask_addr
newrow
0 abc@xyz.com 0 3705824725 2 4294967295
1 sdf@xyz.com 0 3705824825 4 4294967625

关于python - 在Python中将多列转换为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com