如何使用pandas和DataFrame将结构化文本格式化输出为指定格式
实现代码
你可以通过先融合再透视的两步操作完成格式转换,50万条数据pandas可以轻松处理:
import pandas as pd # 读取输入文件 df = pd.read_csv('input.txt', sep=' ') # 第一步:把a、b列转为长格式,提取出r列 df_melt = df.melt(id_vars=['p', 'm'], value_vars=['a', 'b'], var_name='r') # 第二步:按r、p分组,把m的取值转为独立列 df_res = df_melt.pivot(index=['r', 'p'], columns='m', values='value').reset_index() # 清除列名层级冗余 df_res.columns.name = None # 输出为csv,不需要导出索引 df_res.to_csv('output.csv', index=False, sep=',')
运行后输出的output.csv内容完全符合要求:
r,p,0,1,2 a,1,10,11,12 a,2,20,21,22 b,1,100,111,122 b,2,200,211,222
内容的提问来源于stack exchange,提问作者Sharath
相关产品推荐
相关产品推荐

