如何将DataFrame中y列的列表值追加到x列元素并生成组合列表?
解决方法
你可以通过以下两种方式实现将x列的单个值与y列的列表拼接,生成新的组合列表替换原x列:
方法1:使用apply逐行处理
利用apply函数按行遍历DataFrame,将x的单个值转为列表后与y的列表拼接:
import pandas as pd vals = [[100,200], [100,200],[100,200]] df = pd.DataFrame({'y':vals}) df['x'] = [1,2,3] # 执行拼接操作 df['x'] = df.apply(lambda row: [row['x']] + row['y'], axis=1) print(df)
执行后输出的DataFrame为:
y x 0 [100, 200] [1, 100, 200] 1 [100, 200] [2, 100, 200] 2 [100, 200] [3, 100, 200]
方法2:使用列表推导(效率更高)
对于大数据集,列表推导的执行效率优于apply,直接遍历x和y的元素对完成拼接:
import pandas as pd vals = [[100,200], [100,200],[100,200]] df = pd.DataFrame({'y':vals}) df['x'] = [1,2,3] # 执行拼接操作 df['x'] = [[x_val] + y_list for x_val, y_list in zip(df['x'], df['y'])] print(df)
两种方法都能得到目标结果,其中列表推导更适合处理行数较多的DataFrame。
内容的提问来源于stack exchange,提问作者Dulat Yussupaliyev
相关产品推荐
相关产品推荐

