再按照E列中的列表元素拆分为多行
时间: 2024-03-12 14:47:45 浏览: 15
好的,下面是示例代码,假设我们有一个 DataFrame 对象,其中包含 A 列、B 列和 C 列:
```python
import pandas as pd
# 创建示例数据
data = {
'A': ['foo', 'hello', 'spam'],
'B': ['bar', 'world', 'eggs'],
'C': ['apple', 'banana', 'apple']
}
# 创建 DataFrame 对象
df = pd.DataFrame(data)
# 将 A 列、B 列、C 列字符串用下划线连接生成 D 列
df['D'] = df.apply(lambda row: '_'.join([row['A'], row['B'], row['C']]), axis=1)
# 用下划线将 D 列分割为列表并对列表内的元素去重得到 E 列
df['E'] = df['D'].apply(lambda x: list(set(x.split('_'))))
# 按照 E 列中的列表元素拆分为多行
df = df.explode('E')
# 打印处理后的 DataFrame 对象
print(df)
```
运行结果如下:
```
A B C D E
0 foo bar apple foo_bar_apple apple
0 foo bar apple foo_bar_apple bar
0 foo bar apple foo_bar_apple foo
1 hello world banana hello_world_banana banana
1 hello world banana hello_world_banana world
1 hello world banana hello_world_banana hello
2 spam eggs apple spam_eggs_apple eggs
2 spam eggs apple spam_eggs_apple spam
2 spam eggs apple spam_eggs_apple apple
```
这个代码中,我们使用 explode() 函数按照 E 列中的列表元素拆分为多行。explode() 函数会将 DataFrame 对象中的每个元素拆分为一个新行,并复制其他列的值。