首页 > 解决方案 > 列表的熊猫列:如何设置项目的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?

标签: pythonpandas

解决方案


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.


推荐阅读