尝试将字符串转换为 Pandas 中的列表
Trying to convert a string into a list in Pandas
我正在尝试转换一个看起来像这样的列
cleaned
['11-111']
['12-345', '67-789']
['00-000', '01-234']
进入列表,因为我读到 Pandas 最初将列表解释为本文中的字符串:
https://towardsdatascience.com/dealing-with-list-values-in-pandas-dataframes-a177e534f173
我用的是文中提到的功能
master["cleaned"] = master["cleaned"].apply(eval)
但我收到此错误
eval() arg 1 must be a string, bytes or code object
我试着查找它们,但我无法弄明白
df.cleaned = pd.eval(df.cleaned)
好像没有专门用来处理失败的,所以你可以自己做:
def try_eval(x):
try:
return eval(x)
except:
return x
df.cleaned = df.cleaned.apply(try_eval)
然后您可以通过以下操作查找未转换的那些:
df.cleaned[df.cleaned.apply(lambda x: isinstance(x, str))]
我正在尝试转换一个看起来像这样的列
cleaned
['11-111']
['12-345', '67-789']
['00-000', '01-234']
进入列表,因为我读到 Pandas 最初将列表解释为本文中的字符串: https://towardsdatascience.com/dealing-with-list-values-in-pandas-dataframes-a177e534f173
我用的是文中提到的功能
master["cleaned"] = master["cleaned"].apply(eval)
但我收到此错误
eval() arg 1 must be a string, bytes or code object
我试着查找它们,但我无法弄明白
df.cleaned = pd.eval(df.cleaned)
好像没有专门用来处理失败的,所以你可以自己做:
def try_eval(x):
try:
return eval(x)
except:
return x
df.cleaned = df.cleaned.apply(try_eval)
然后您可以通过以下操作查找未转换的那些:
df.cleaned[df.cleaned.apply(lambda x: isinstance(x, str))]