python - 列表的熊猫列:如何设置项目的dtype
问题描述
我有一个数据框,它有多个包含列表的列,并且每行中列表的长度不同:
tweetid tweet_date user_mentions hashtags
00112 11-02-2014 [] []
00113 11-02-2014 [00113] [obama, trump]
00114 30-07-2015 [00114, 00115] [hillary, trump, sanders]
00115 30-07-2015 [] []
数据框是三个不同数据框的连接,我不确定列表中的项目是否具有相同的 dtype。例如,在 user_mentions 列中,有时数据如下:
[00114, 00115]
但有时是这样的:
['00114','00115']
如何为列表中的项目设置 dtype?
解决方案
Pandas DataFrames 并不是真正设计为将列表作为行/列值来存放,所以这就是您面临困难的原因。你可以做
python3.x:
df['user_mentions'].apply(lambda x: list(map(int, x)))
python2.x:
df['user_mentions'].apply(lambda x: map(int, x))
在 python3 中,当映射一个映射对象时返回,所以你必须转换为列表,在 python2 中这不会发生,所以你没有明确地将它称为列表。
在上面的 lambda 中, x 是您的行list
,您将值映射到int
.
推荐阅读
- intellij-idea - IntelliJ 一直在删除我的项目文件,现在它删除了我的整个项目
- reactjs - 如何使用按钮切换多个视图
- javascript - Google Sheet Script - 根据包含电子邮件的一系列单元格隐藏选项卡
- reactjs - React - 在本地状态下更新 2d 数组而不更新显示网格中的每个组件
- python - 使用 for 循环将键和值添加到空字典
- reactjs - Django rest auth 安全地存储令牌
- powershell - 使用 Powershell 通过分隔符拆分 Excel 工作簿的一列
- django - 尝试将 Django 时间字段设置为 00:00:00 但不希望它在显示时显示午夜
- command - 如何使用特定命令删除频道?
- postgresql - 拒绝用户更改自己的角色