python - 如何处理df中多列内的多个列表?
问题描述
我有一个这样的df
data_list
0 [['13878018', '13878274'], ['54211', '54212'], ['AARTIIND21JUL850PE', 'AARTIIND21JUL860CE'], ['AARTIIND', 'AARTIIND']]
1 [['13099778', '13100034'], ['51171', '51172'], ['ABFRL21JUL210PE', 'ABFRL21JUL215CE'], ['ABFRL', 'ABFRL']]
2 [['13910018', '13910274'], ['54336', '54337'], ['ACC21JUL1980PE', 'ACC21JUL2000CE'], ['ACC', 'ACC']]
我想把它转换成
name token ext_t symbol
0 AARTIIND 13878018 54211 AARTIIND21JUL850PE
1 AARTIIND 13878274 54212 AARTIIND21JUL860CE
2 ABFRL 13099778 51171 ABFRL21JUL210PE
3 ABFRL 13100034 51172 ABFRL21JUL215CE
4 ACC 13910018 54336 ACC21JUL1980PE
5 ACC 13910274 54337 ACC21JUL2000CE
我怎样才能做到这一点?
我尝试应用 pd.series 并得到这样的输出
0 1 2 3
0 [13878018, 13878274] [54211, 54212] [AARTIIND21JUL850PE, AARTIIND21JUL860CE] [AARTIIND, AARTIIND]
1 [13099778, 13100034] [51171, 51172] [ABFRL21JUL210PE, ABFRL21JUL215CE] [ABFRL, ABFRL]
2 [13910018, 13910274] [54336, 54337] [ACC21JUL1980PE, ACC21JUL2000CE] [ACC, ACC]
我不确定下一步如何进行。有人可以帮忙吗?
解决方案
尝试通过DataFrame()
方法和apply()
:
out=pd.DataFrame(df['data_list'].tolist()).apply(pd.Series.explode)
#OR(you can also use agg() method in place of apply() method)
out=pd.DataFrame(df['data_list'].tolist()).agg(pd.Series.explode)
最后:
out.columns=['token','ext_t','symbol','name']
现在,如果您打印out
,您将获得预期的输出
推荐阅读
- rest - ActiveMQ Artemis REST 集成抛出异常
- python - 我得到'ValueError:没有为任何变量提供渐变:'
- design-patterns - 装饰器与责任链 DP
- functional-programming - 函数式编程原则与函数式编程范式?
- mysql - 如何在SELECT字段中同时使用distinct、count和sum?
- android - 在我的联系人列表中自动保存联系人
- php - 如何显示图像名称字符串中的第一个图像名称
- aws-elasticsearch - 更新 AWS Elasticsearch 集群设置
- r - 保持从 fread 丢弃的行
- haskell - Haskell 多参数类(模板类型类)