使用pandas中的explode函数,将一行数据转化为多行,原始数据如下表所示,其中前四列数据一一对应,按照分号隔开
M | I | Ma | Mass | Masses | ID |
1;2;2;3 | 4;5;5;6 | 1;12;12;1 | 2;2;2;2 | 4;5;6;6 | 1 |
# 导入
import pandas as pd
# 读取数据
infile = r'D:\桌面\text.csv'
outfile = r'D:\桌面\out.csv'
# 创建表
df = pd.read_csv(infile)
# 将下面五列中的字符串按照分号分开
df['M'] = df['M'].str.split(";") # 'M'指的是列标题
df['I'] = df['I'].str.split(";")
df['Ma'] = df['Ma'].str.split(";")
df['Mass'] = df['Mass '].str.split(";")
df['Masses'] = df['Masses'].str.split(";")
# 炸裂
new_df = df.apply(pd.Series.explode)
new_df.to_csv(outfile)
结果文件如下表:
M | I | Ma | Mass | Masses | ID |
1 | 4 | 1 | 2 | 4 | 1 |
2 | 5 | 12 | 2 | 5 | 1 |
2 | 5 | 12 | 2 | 6 | 1 |
3 | 6 | 1 | 2 | 6 | 1 |