如何拆分DataFrame中含字典列表的列并保留原有其他列
问题原因
你现有的代码仅单独解析了attachments.data字段生成了只包含name、link的新表,没有和原DataFrame的其他列做拼接,所以会丢失Heading 2等原有字段。
调整方案
保留你原有的解析逻辑,新增一步和原表的合并操作即可:
s = df['attachments.data'].explode() calcu = pd.DataFrame(s.tolist(), index=s.index) calcu = calcu.rename(columns={'title': 'name', 'unshimmed_url': 'link'}) # 新增合并步骤,保留所有原有列 df2 = df.join(calcu[['name', 'link']]) # 可选:不需要保留原`attachments.data`列的话可执行删除 # df2 = df2.drop('attachments.data', axis=1)
补充说明
如果你的attachments.data列每一行的列表都只有1个字典元素,不需要拆行的话,也可以用更简化的写法:
df[['name', 'link']] = df['attachments.data'].apply( lambda x: (x[0]['title'], x[0]['unshimmed_url']) )
内容的提问来源于stack exchange,提问作者KristiLuna
相关产品推荐
相关产品推荐

