如何獲取以下數(shù)據(jù)幀的唯一非空值并將其轉(zhuǎn)換為字符串?例如:import pandas as pd
df=pd.DataFrame([{'id': 1, 'language': 'en'}, {'id': 1}, {'id': 1, 'language': 'fr'}, {'id': 1, 'language': 'en'}])我想得到: subs
1 'en,fr'目前我有類似的東西:summary_df = df.groupby(['field1', 'field2']).agg(
subs =('language', 'unique'),
).reset_index()但這似乎存在三個問題:它包括空值我無法將其保存到 sql,因為它返回一個數(shù)組(我想我需要一個字符串)我也想整理一下這是我目前正在做的事情。這種方法好不好?壞的?有什么需要改進的地方嗎?subs =('burned_in_sub_language', lambda x: str(sorted(x.dropna().unique())))
2 回答

人到中年有點甜
TA貢獻1895條經(jīng)驗 獲得超7個贊
清潔并分類。
分組并選擇。
收集獨特的標簽并將其轉(zhuǎn)換為字符串。
如果需要,重命名該列。
df.dropna().sort_values('language')\
.groupby('id')['language']\
.unique().str.join(',')\
.reset_index().rename(columns={'language': 'subs'})
# id subs
#0 1 en,fr

喵喔喔
TA貢獻1735條經(jīng)驗 獲得超5個贊
df.dropna().groupby('id')['language'].unique().reset_index().rename(columns={'language':'subs'})
期望的結(jié)果
id subs 0 1 [en, fr]
添加回答
舉報
0/150
提交
取消