我試圖將數(shù)據(jù)框轉(zhuǎn)換為這樣的列表。這是轉(zhuǎn)換前的數(shù)據(jù)框。df_gr = df_com.groupby(['Publication_Year_x', 'UPC', 'CPC']).size().unstack(fill_value=0)df_gr_peryear = df_gr.replace(0, '', regex=True)df_gr_peryear這是我嘗試使用此代碼的列表list_allyear = [(list(i), v) for i, v in df_gr_peryear.stack().iteritems()]list_allyear = pd.DataFrame(list_allyear, columns=["MOC", "count"])list_allyear這是結(jié)果但我只想將它拆分為所有行中的第一個(gè)元素。預(yù)期的結(jié)果將是year MOC count1971 [136,-]1971 [136, A01D] ..1972 [231, H01L] 5我已經(jīng)嘗試過(guò),pd.DataFrame(list_allyear.MOC.values.tolist())但它拆分了行中包含的所有元素
1 回答

慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
只是簡(jiǎn)化了你的代碼,你可以使用fill_value='',而不是replace再創(chuàng)建列表理解一個(gè)字典有一個(gè)最終的DataFrame:
cols = ['Publication_Year_x', 'UPC', 'CPC']
s = df_com.groupby(cols).size().unstack(fill_value='').stack()
L = [{'year': idx[0], 'MOC': list(idx[1:]), 'count': vals} for idx, vals in s.items()]
list_allyear = pd.DataFrame(L)
添加回答
舉報(bào)
0/150
提交
取消