如何基于熊猫数据框中列表中的元素添加多个列?

时间:2019-04-24 17:24:36

标签: python-3.x pandas dataframe

我正在处理一个数据集,该数据集的列在大括号中包含多个字符串元素。每个元素都需要分成单独的行,并且该行中的其他列需要针对每个元素重复。

我看过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的方法,但又不会丢失任何数据。

0 个答案:

没有答案