我正在处理一个数据集,该数据集的列在大括号中包含多个字符串元素。每个元素都需要分成单独的行,并且该行中的其他列需要针对每个元素重复。
我看过StackOverflow的其他各种类似示例。但是我没有得到正确的输出。可能是因为元素在大括号中。
输入数据框:
Col1 Col2 Col3 Col4
R1 "AAA" 1 0.3 {'aa','bb','cc'}
R2 "DDD" 5 0.8 {'dd','ee'}
输出数据框
Col1 Col2 Col3 Col4
R1 "AAA" 1 0.3 'aa'
R2 "AAA" 1 0.3 'bb'
R3 "AAA" 1 0.3 'cc'
R4 "DDD" 5 0.8 'dd'
R5 "DDD" 5 0.8 'ee'
我尝试了不同的方法,例如:
df_output = pd.DataFrame.from_records(df.Col4.values.tolist(), index = df.index)
cols = ['Col1', 'Col2','Col3']
df_output = pd.DataFrame({"B": np.repeat(df[cols].values, df.Col4.str.len()),
"A": list(chain.from_iterable(df.Col4))})
我正在寻找一种通过添加行将输入df转换为输出df的方法,但又不会丢失任何数据。