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

2024-10-04 05:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着像这样把数据框转换成列表

这是转换前的数据帧

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

the data frame

下面是我用这个代码尝试过的列表

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

这是结果

enter image description here

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

year  MOC         count
1971 [136,-]
1971 [136, A01D] 
.
.
1972 [231, H01L]    5

我试过pd.DataFrame(list_allyear.MOC.values.tolist()),但它会分割行中包含的所有元素


Tags: 数据com元素dataframedf列表countlist
1条回答
网友
1楼 · 发布于 2024-10-04 05:22:42

只需简化代码,您可以使用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)

相关问题 更多 >