Python 如何基于不同列中的重复值将数组值移动到新列
我将python与numpy和pandas一起使用,我有一个如下所示的数据框架:Python 如何基于不同列中的重复值将数组值移动到新列,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我将python与numpy和pandas一起使用,我有一个如下所示的数据框架: index title Time Y 0 Part1 0.5 -117 1 Part1 1.0 -118 2 Part1 1.5 -137 3 Part1 2.0 -123 4 Part2 0.5 -97 5 Part2 1.0 -94 6 Part2 1.5 -95 7 Part2 2.0 -99 我希望它改变
index title Time Y
0 Part1 0.5 -117
1 Part1 1.0 -118
2 Part1 1.5 -137
3 Part1 2.0 -123
4 Part2 0.5 -97
5 Part2 1.0 -94
6 Part2 1.5 -95
7 Part2 2.0 -99
我希望它改变,这样我就可以根据时间得到“第1部分”和“第2部分”的值。。。。像这样
index title Time Part1 Part2
0 Part1 0.5 -117 -97
1 Part1 1.0 -118 -94
2 Part1 1.5 -137 -95
3 Part1 2.0 -123 -99
我实际上不需要索引或标题栏。我只需要时间,第一部分和第二部分
我曾尝试使用下面的代码制作两个较小的数据帧,并将它们串联起来,但最终得到的结果是:
a = df.loc[df['title'].str.contains('Part 1')]
b = df.loc[df['title'].str.contains('Part 2')]
c=pd.concat([a,b], axis=1)
index title Time Y title Time Y
0 Part1 0.5 -117 nan nan nan
1 Part1 1.0 -118 nan nan nan
2 Part1 1.5 -137 nan nan nan
3 Part1 2.0 -123 nan nan nan
4 nan nan nan Part2 0.5 -97
5 nan nan nan Part2 1.0 -94
6 nan nan nan Part2 1.5 -95
7 nan nan nan Part2 2.0 -99
有人知道如何将其转换为格式,以便根据“时间”列中的匹配值显示Y值吗?我想我可以用某种循环来实现这一点,但我希望有一种更简单的方法使用匹配或某种内置函数
感谢您的帮助
更新
a = a.drop(columns=['title'])
b = b.drop(columns=['title'])
c=pd.merge(a, b, on=['Time'])
这将生成一个新的表,标题为“Time,Y_x,Y_Y”。不完美,因为“零件号”没有保留,但为我完成了工作
谢谢 我认为您需要使用
pivot
方法:
df.pivot(index="time", columns=["title"]).reset_index()
您可以在中找到更多信息。我认为您需要使用
pivot
方法:
df.pivot(index="time", columns=["title"]).reset_index()
你可以在网上找到更多关于它的信息