【问题标题】:Pandas dataframe - have column with list of stringsPandas 数据框 - 具有包含字符串列表的列
【发布时间】:2017-04-07 08:42:15
【问题描述】:
我有一个这种格式的数据框:
id val
0 294 aa
1 254 bb
2 844 cc
我需要 'val' 列是一个包含字符串的列表,因为我需要将数据框与另一个具有这种格式的数据框连接起来:
id val
0 294 [aa]
1 254 [bb]
2 844 [cc]
有谁知道我怎么能做到这一点?它必须是一个列表,因为另一个数据框是我们数据库的格式,我想将连接的数据框插入其中。
【问题讨论】:
标签:
python
list
pandas
join
dataframe
【解决方案1】:
我建议不要存储非标量类型,但如果你坚持可以使用 apply 并为每一行构造一个列表:
In [53]:
df['val'] = df['val'].apply(lambda x: [x])
df
Out[53]:
id val
0 294 [aa]
1 254 [bb]
2 844 [cc]
【解决方案2】:
你可以使用:
df['val'] = [[x] for x in df['val'].values.tolist()]
print (df)
id val
0 294 [aa]
1 254 [bb]
2 844 [cc]
但最好使用标量,因为删除列表最好str[0]:
print (df)
id val
0 294 [aa]
1 254 [bb]
2 844 [cc]
df['val'] = df['val'].str[0]
print (df)
id val
0 294 aa
1 254 bb
2 844 cc