Python 3.x 将DataFrame OrderedSet列转换为列表
我有一个熊猫数据框,一列,是一个Python 3.x 将DataFrame OrderedSet列转换为列表,python-3.x,pandas,list,apply,Python 3.x,Pandas,List,Apply,我有一个熊猫数据框,一列,是一个OrderedSet,如下所示: df OrderedSetCol 0 OrderedSet([172175436225582550234 23440348550040]) 这是: from ordered_set import OrderedSet 我正在尝试将此列转换为列表: df['OrderedSetCol_list'] = df['OrderedSetCol'].apply(lambda x: ast.literal_eval(str("
OrderedSet
,如下所示:
df
OrderedSetCol
0 OrderedSet([172175436225582550234 23440348550040])
这是:
from ordered_set import OrderedSet
我正在尝试将此列转换为列表:
df['OrderedSetCol_list'] = df['OrderedSetCol'].apply(lambda x: ast.literal_eval(str("\'" + x.replace('OrderedSet(','').replace(')','') + "\'")))
代码成功执行,但我的列类型仍然是str
,而不是list
type(df.loc[0]['OrderedSetCol_list'])
str
我做错了什么
编辑:当我从磁盘读取文件时,我的OrderedSetCol
也是一个字符串列,该文件最初是从OrderedSet列保存的
预期产出:
[1721754, 3622558, 2550234, 2344034, 8550040]
您可以应用
列表
调用,就像您对OrderedSet
本身所做的那样:
df = pd.DataFrame({'OrderedSetCol':[OrderedSet([1721754, 3622558, 2550234, 2344034, 8550040])]})
df.OrderedSetCol.apply(list)
输出:
[1721754, 3622558, 2550234, 2344034, 8550040]
如果您的数据类型为字符串列:
df.OrderedSetCol.str.findall('\d+')
请将您的示例数据框与具有预期输出的
OrderedSetCol
共享。完成,希望对您有所帮助。