Python 对于column1值和column2名称,是否有方法对数据进行分组和重新排列,以便column2成为行标题

Python 对于column1值和column2名称,是否有方法对数据进行分组和重新排列,以便column2成为行标题,python,pandas,numpy,Python,Pandas,Numpy,数据是唯一的值,id在excel文件中重复多次。数据为第1列,id为第2列。我希望将唯一的数据值分组到一个id,而不会丢失任何数据。然后将列索引设置为id,并粘贴下面关联的数据值。然后对第二个id执行相同的操作,并将该id的值粘贴到第一个id列左侧1个单元格下面。有人能帮我把它整理成这样的布局吗 数据帧中不能有长度可变的列。因此,NaNs是不可避免的 import pandas as pd df = pd.DataFrame({'col1':[2,3,3,4,2,1,3,4], 'col2':

数据是唯一的值,id在excel文件中重复多次。数据为第1列,id为第2列。我希望将唯一的数据值分组到一个id,而不会丢失任何数据。然后将列索引设置为id,并粘贴下面关联的数据值。然后对第二个id执行相同的操作,并将该id的值粘贴到第一个id列左侧1个单元格下面。有人能帮我把它整理成这样的布局吗


数据帧中不能有长度可变的列。因此,
NaN
s是不可避免的

import pandas as pd

df = pd.DataFrame({'col1':[2,3,3,4,2,1,3,4], 'col2':[1,1,1,1,2,2,2,3]})

# First problem
df2 = df.pivot(columns='col2')["col1"]
df2 = df2.apply(lambda x: pd.Series(x.dropna().values))
print(df2)

# Second problem
def concat(s):
  return s.tolist()

df3 = df.groupby('col2').agg(concat)["col1"].apply(pd.Series)
print(df3)

考虑把你的数据作为文本,而不是图片!