如何将Pandas DataFrame中含元组的列拆分为两列
解决Pandas元组列拆分问题
你的代码报错主要有两个原因:
- 原DataFrame不存在
a、b列,直接通过loc赋值会触发索引/列不存在的错误 apply返回的元组序列无法直接映射到多列的赋值操作
以下是两种一行代码实现拆分的方案:
方案1:利用tolist() + 构造DataFrame
dummy_df[['a', 'b']] = pd.DataFrame(dummy_df['ab'].tolist(), index=dummy_df.index)
将元组列转为列表后,直接构造新的DataFrame并赋值给新增的a、b列,这种方法性能更优,适合大数据量场景。
方案2:使用apply(pd.Series)
dummy_df[['a', 'b']] = dummy_df['ab'].apply(pd.Series)
通过apply将每个元组转为Series,Pandas会自动将Series的索引对应为新列,这种写法更简洁直观。
执行任意一种方案后,你的DataFrame就会新增a、b两列,分别存储原元组的第一个和第二个元素。
内容的提问来源于stack exchange,提问作者Munjal Desai
相关产品推荐
相关产品推荐

