我有一个包含一列列表的数据框,可以使用以下命令创建:
import pandas as pd
lists={1:[[1,2,12,6,'ABC']],2:[[1000,4,'z','a']]}
#create test dataframe
df=pd.DataFrame.from_dict(lists,orient='index')
df=df.rename(columns={0:'lists'})
数据框df
好像:
lists
1 [1, 2, 12, 6, ABC]
2 [1000, 4, z, a]
我需要创建一个名为“的新列”liststring
' 它获取每个列表中的每个元素lists
并创建一个字符串,每个元素用逗号分隔。每个列表的元素可以是int
, float
, or string
。所以结果是:
lists liststring
1 [1, 2, 12, 6, ABC] 1,2,12,6,ABC
2 [1000, 4, z, a] 1000,4,z,a
我尝试过各种事情,包括如何将 Pandas DF 中的列表转换为字符串? https://stackoverflow.com/questions/37347725/converting-a-panda-df-list-into-a-string/37347837:
df['liststring']=df.lists.apply(lambda x: ', '.join(str(x)))
但不幸的是结果采用每个字符并用逗号分隔:
lists liststring
1 [1, 2, 12, 6, ABC] [, 1, ,, , 2, ,, , 1, 2, ,, , 6, ,, , ', A...
2 [1000, 4, z, a] [, 1, 0, 0, 0, ,, , 4, ,, , ', z, ', ,, , '...