df中一列list拆成多列

df中一列list拆成多列

import numpy as np
import pandas as pd
list1 = [["info1", ["zhangsan", "nan", "27fen"]], ["info2", ["lisi", "nv", "35fen"]],
         ["info3", ["wangwu", "nan", "45fen"]]]
df = pd.DataFrame(list1, columns=["A", "B"])
df_1 = pd.DataFrame(df["B"].values.tolist(), columns=["C", "D", "E"])
df = pd.concat([df, df_1], axis=1)
print(df)

要把df中的“B”列d拆成3列

C:\Users\phoeb\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/phoeb/PycharmProjects/pythonProject/numpysty.py
       A                       B         C    D      E
0  info1  [zhangsan, nan, 27fen]  zhangsan  nan  27fen
1  info2       [lisi, nv, 35fen]      lisi   nv  35fen
2  info3    [wangwu, nan, 45fen]    wangwu  nan  45fen

Process finished with exit code 0

方法1

方法2

实测方法2 在数据量大时更有效


    result = pd.DataFrame(all_log["mail_attach"].values.tolist(),
                          columns=['mail_attach_name', 'mail_attach_ordinal', 'mail_attach_name_suffix',
                                   "mail_attach_size"])
    result = all_log["mail_attach"].apply(pd.Series, index=['mail_attach_name', 'mail_attach_ordinal',
                                                            'mail_attach_name_suffix', "mail_attach_size"])
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值