我有一个DataFrame,其中一列是set
的字符串表示形式。有可能"展开"任何像这样的行?
一个例子:
ColA ColB ColC ColD
0 "one item in a set" "{'item 1'}" "..." "..."
1 "several in a set" "{'item 1', 'item 2'}" "..." "..."
...
应该成为:
ColA ColB ColC ColD
0 "one item in a set" 'item 1' "..." "..."
1 "several in a set" 'item 1' "..." "..."
2 "several in a set" 'item 2' "..." "..."
...
答案 0 :(得分:1)
你可以:
df2 = df.colB.str[1:-1].str.split(',', expand=True)
df2 = df2.stack().reset_index()
df2 = df2.drop('level_1', axis=1).rename(columns={0: 'colB'}).set_index('level_0')
df = df.drop('colB', axis=1)
df = pd.concat([df, df2], axis=1)
将{}
,.split()
','
expand
移至新列和.stack()
后,然后清理。