猿问

是否可以从列表中的特定元素拆分列?

我试图将数据框转换为这样的列表。


这是转换前的数据框。


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

这是结果

http://img4.mukewang.com/6124d5930001628902120191.jpg

但我只想将它拆分为所有行中的第一个元素。预期的结果将是


year  MOC         count

1971 [136,-]

1971 [136, A01D] 

.

.

1972 [231, H01L]    5

我已经尝试过,pd.DataFrame(list_allyear.MOC.values.tolist())但它拆分了行中包含的所有元素


温温酱
浏览 236回答 1
1回答

慕的地6264312

只是简化了你的代码,你可以使用fill_value='',而不是replace再创建列表理解一个字典有一个最终的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)
随时随地看视频慕课网APP

相关分类

Python
我要回答