Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_Numpy_Pandas Groupby - Fatal编程技术网

Python 将列表中的行分组并转置

Python 将列表中的行分组并转置,python,pandas,numpy,pandas-groupby,Python,Pandas,Numpy,Pandas Groupby,我发现了一个问题,需要更进一步 此问题所需的输出为 A [1,2] B [5,5,4] C [6] 我想要达到的是 A B C 1 5 6 2 5 4 我试过使用 grouped=dataSet.groupby('Column1') df = grouped.aggregate(lambda x: list(x)) 我的输出被它绊住了 df.T Column1 A B C [1,2] [5,5,4] [6] 我相信您需要由constructor

我发现了一个问题,需要更进一步

此问题所需的输出为

A [1,2]
B [5,5,4]
C [6]
我想要达到的是

A B C
1 5 6
2 5 
  4
我试过使用

grouped=dataSet.groupby('Column1')
df = grouped.aggregate(lambda x: list(x))
我的输出被它绊住了

df.T
Column1  A     B       C
        [1,2] [5,5,4] [6]

我相信您需要由constructor创建
DataFrame

df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})

s = df.groupby('a')['b'].apply(list)
df = pd.DataFrame(s.values.tolist(), index=s.index).T
print (df)
a    A    B    C
0  1.0  5.0  6.0
1  2.0  5.0  NaN
2  NaN  4.0  NaN

我认为这里没有必要使用列表列。 您可以通过对groupby生成的组进行简单的词典理解来获得结果:

out = pd.concat({key: 
                    group['b'].reset_index(drop=True)
                for key, group in df.groupby('a')}, axis=1)
这将提供所需的输出:

out
Out[59]: 
     A  B    C
0  1.0  5  6.0
1  2.0  5  NaN
2  NaN  4  NaN

为什么今天每一个熊猫问题都有一列列表?和它们一起工作很糟糕,而不是熊猫的本意。请重新评估您的策略。您好,我是熊猫的新手,从今天早上开始我就一直在抓挠脑袋,好吧,我会注意到熊猫不适合列出来。你能给我提出解决这个问题的策略吗?我尝试过使用pivot,但没有找到任何解决方案。效果很好:)很高兴听到!如果问题解决了,别忘了投票/接受它:)