假设我们在Pandas中有这个数据集。在我的情况下,我通过使用aggfunc为lambda x: x的pivot_table()来获得它,因为list或set对这种类型的数据无法处理。
这将产生以下结果:
import pandas as pd
df = pd.DataFrame(
data=[
[None, "1,2,3", None],
["3,4,5", None, "1,4,5"],
[None, "1,3,6", None],
],
index=["YYZ", "YEG", "BRU"],
columns=["ANA", "JAL", "KLM"],
)
df
我希望解析它以将逗号分隔的字符串更改为集合。我使用了一种简单的方法来实现:
for column in df.columns:
nulls = df[column].isnull()
for idx in df.loc[nulls, column].index:
df.at[idx, column] = set()
for idx in df.loc[~nulls, column].index:
df.at[idx, column] = set(df.at[idx, column].split(","))
df
这将产生以下结果:
ANA JAL KLM
YYZ {} {3, 2, 1} {}
YEG {5, 4, 3} {} {5, 4, 1}
BRU {} {6, 3, 1} {}
在Pandas中,做这件事的正确方式是什么?