假设我正在处理这个数据帧:
元素列表 | (123年,1234年,美国广播公司(abc) - 123, abc - 1234] |
---|
[abc - 321] |
南 |
… |
尝试:
mask = pd.notna(df["Element List"])
df[["abc", "Others"]] = df.loc[mask, "Element List"].apply(
lambda x: pd.Series(
{
"abc": [v for v in x if v.startswith("abc")] or np.nan,
"Others": [v for v in x if not v.startswith("abc")] or np.nan,
}
)
)
print(df)
打印:
Element List abc Others
0 [123, 1234, abc-123, abc-1234] [abc-123, abc-1234] [123, 1234]
1 [abc-321] [abc-321] NaN
2 NaN NaN NaN