我在使用TMDB数据集进行数据操作时遇到了以下问题。
假设我有一个数据框,如下所示:
import pandas as pd
import ast
df = pd.DataFrame({'rank': [1,2,3],
'belongs': [ "{'id': 1, 'name': 'Toy Story'}",
"{'id': 3, 'name': 'Grumpy Old Men'}",
np.nan
]})
print(df[df.belongs.notnull()])
当我按顺序运行这些命令时,我得到了所需的特许权名称:
fran = df['belongs'].copy()
fran = fran[fran.notnull()]
fran = fran.apply(ast.literal_eval)
fran = fran.apply(lambda x: x['name'] if isinstance(x, dict) else np.nan)
fran = fran[fran.notnull()]
fran
0 Toy Story
1 Grumpy Old Men
如何将这些命令连成一行?
我试过这个:
(df['belongs'].copy()
.apply( lambda x: x[x.notnull()])
.apply(ast.literal_eval)
.apply(lambda x: x['name'] if isinstance(x, dict) else np.nan)
.apply( lambda x: x[x.notnull()])
)
给出了错误:
AttributeError: 'str' object has no attribute 'notnull'
我试着把x改成pd。系列(x),但有些错误持续存在。
如何链接给定的操作?