Python 是否可以从列表中的特定元素中拆分列?
我试着像这样将数据帧转换成列表 这是转换前的数据帧Python 是否可以从列表中的特定元素中拆分列?,python,pandas,list,Python,Pandas,List,我试着像这样将数据帧转换成列表 这是转换前的数据帧 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_perye
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
结果如下
但我只想将其拆分为所有行中的第一个元素。预期结果将是
year MOC count
1971 [136,-]
1971 [136, A01D]
.
.
1972 [231, H01L] 5
我已经尝试了
pd.DataFrame(list\u allyear.MOC.values.tolist())
但是它分割了行中包含的所有元素只是简化了代码,您可以使用fill\u value='
代替替换
,然后创建一个字典来理解列表,从而得到最终的数据框架
:
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)
有一个问题-空值和数值混合不是问题吗?最好省略
df_gr\u peryear=df_gr.replace(0',,regex=True)
?是的,没有problem@HookIm-不客气!也可以自由投票:)@pygo-谢谢。