我有一个包含3列的pandas数据框,其中2列包含具有逗号分隔值的文本字符串。我想拆分两列的每个CSV字段,并为每个条目创建一个新行。例如,a应该变为b:
Input:
var1 var2 var3
0 a,b 1 12,13
1 c,d 2 15,16
Output:
var1 var2 var3
0 a 1 12
1 b 1 12
2 a 1 13
3 b 1 13
4 c 2 15
5 d 2 15
6 c 2 16
7 d 2 16
我尝试了以下脚本,但我只能将第1列CSV转换为第2列的行
pd.concat([pd.Series(row[1], row[0].split(',')) for _, row in df.iterrows()]).reset_index()
我得到的输出是:
Output:
var1 var2
0 a 1
1 b 1
2 c 2
3 d 2
任何帮助将不胜感激。
答案 0 :(得分:0)
根据您的具体情况回答How to do lateral view explode() in pandas:
rows = []
for i, row in df.iterrows():
for a in row.var1.split(','):
for c in row.var3.split(','):
rows.append([a, row.var2, c])
pd.DataFrame(rows, columns=df.columns)