Pandas .agg() 转换为列表但跳过 nans
Pandas .agg() convert to list but skip nans
如何 consolidate/reduce DataFrame 以便它按自定义列合并行 'id' 并将值放入列表(如果它们不是 Nan)。到目前为止,我想出了这个,但它并没有删除 Nans:
x: pd.DataFrame = df_chunk.groupby('id', dropna=True).agg(lambda x: list(x))
for row in x.itertuples():
print(row)
所以结果是:
Pandas(Index=1, surname=['Bruce', nan, nan], given_name=['Erin', nan, nan], date_of_birth=['11/03/1961', '11/04/1961', '11/06/1961'], address=['10 Kestrel Wood Way, York', '4 Ward Avenue, Cowes', '11 Woodhill Court, Woodside Road, Amersham'], postcode=['YO31 9EJ', 'BD10 0LT', 'WA14 1LH'], mobile=['+64 21 421 2300', '+64 29 975 1551', '+64 22 5491 7112'])
想要的结果是姓氏=['Bruce']、given_name=['Erin']等等
使用 Series.dropna
删除 NaN
s 和 None
s:
df_chunk.groupby('id').agg(lambda x: list(x.dropna()))
如何 consolidate/reduce DataFrame 以便它按自定义列合并行 'id' 并将值放入列表(如果它们不是 Nan)。到目前为止,我想出了这个,但它并没有删除 Nans:
x: pd.DataFrame = df_chunk.groupby('id', dropna=True).agg(lambda x: list(x))
for row in x.itertuples():
print(row)
所以结果是:
Pandas(Index=1, surname=['Bruce', nan, nan], given_name=['Erin', nan, nan], date_of_birth=['11/03/1961', '11/04/1961', '11/06/1961'], address=['10 Kestrel Wood Way, York', '4 Ward Avenue, Cowes', '11 Woodhill Court, Woodside Road, Amersham'], postcode=['YO31 9EJ', 'BD10 0LT', 'WA14 1LH'], mobile=['+64 21 421 2300', '+64 29 975 1551', '+64 22 5491 7112'])
想要的结果是姓氏=['Bruce']、given_name=['Erin']等等
使用 Series.dropna
删除 NaN
s 和 None
s:
df_chunk.groupby('id').agg(lambda x: list(x.dropna()))