如何访问列表中的元素并将它们存储为数据框中的新列?

问题描述 投票:0回答:1

我有以下数据框

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:列表索引超出范围

如何实现我预期的数据框?

python pandas dataframe list tuples
1个回答
0
投票

这是您的解决方案:

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)
© www.soinside.com 2019 - 2024. All rights reserved.