Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以从列表中的特定元素中拆分列?_Python_Pandas_List - Fatal编程技术网

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-谢谢。