【发布时间】:2023-01-19 17:21:45
【问题描述】:
我有一个包含以下列的数据框
col1 col2 col3 col4 col5
0 HP:0005709 ['HP:0001770'] Toe syndactyly SNOMEDCT_US:32113001, C0265660
1 HP:0005709 ['HP:0001780'] Abnormality of toe C2674738
2 EFO:0009136 ['HP:0001507'] Growth abnormality C0262361
我想爆炸“col4”,我尝试了不同的方法,但没有任何效果。 该列的 dtype 是“object”。
我的尝试如下:
-
df.explode('cross_ref') -
df['cross_ref']=df['cross_ref'].str.split(',') df = df.set_index(['col2']).apply(pd.Series.explode).reset_index() -
import ast df[['cross_ref']] = df[['cross_ref']].applymap(ast.literal_eval) df = df.apply(pd.Series.explode)预期的输出是:
col1 col2 col3 col4 col5 0 HP:0005709 ['HP:0001770'] Toe syndactyly SNOMEDCT_US:32113001 0 HP:0005709 ['HP:0001770'] Toe syndactyly C0265660 1 HP:0005709 ['HP:0001780'] Abnormality of toe C2674738 2 EFO:0009136 ['HP:0001507'] Growth abnormality C0262361
【问题讨论】:
-
爆炸
col5?col5是一个列表吗?试试df.explode('col5') -
请重新格式化您的数据框或提供数据框构造函数。
cross_ref栏是col5但是你想爆col4???
标签: python pandas dataframe split explode