我有以下数据框
df
关键词 |
---|
[(导致患者,0.4807),(wa非,0.1332),(2021,-0.0076)] |
[(不正确的重构,0.9084),(错误,0.5304),(不正确,0.2877)] |
列名是关键字,需要用“,”分隔,并且必须生成新列,例如:keyword_1、keyword_2、keyword_3
所以我的 df 应该看起来像
预期数据框
关键字_1 | 关键字_2 | 关键字_3 |
---|---|---|
(导致患者,0.4807) | (wa非,0.1332) | (2021,-0.0076) |
(不正确的重构,0.9084) | (错误,0.5304) | (错误,0.2877) |
我尝试了以下方法:
new_col_list = ['first_keyword', 'second_keyword',
'third_keyword']
for n,col in enumerate(new_col_list):
df[col] = df['keywords'].apply(lambda keywords: keywords[n])
df = df('keywords',axis=1)
但它抛出了错误:IndexError:列表索引超出范围
如何实现我预期的数据框?
这是您的解决方案:
new_df = pd.DataFrame(columns=[f"keywords_{i+1}" for i in range(len(df["Keywords"].iloc[0]))])
for row_idx, col in enumerate(df['Keywords']):
new_df.loc[row_idx] = col
print(new_df)
输出:
keyword_1 keyword_2 keyword_3
0 (caused patient, 0.4807) (wa non, 0.1332) (2021, -0.0076)
1 (incorrect reconstitution, 0.9084) (error, 0.5304) (incorrect, 0.2877)