2024-03-28 13:29:58 发布
网友
这可能很简单,但我有以下数据:
在数据帧1中:
index dat1 0 9 1 5
在数据帧2中:
index dat2 0 7 1 6
我想要一个数据帧,格式如下:
index dat1 dat2 0 9 7 1 5 6
我试过使用append方法,但得到了一个交叉连接(即笛卡尔积)。
append
正确的方法是什么?
您还可以使用:
dat1 = pd.concat([dat1, dat2], axis=1)
join()和concat()方法都可以解决这个问题。但是,有一个警告我必须提到:如果您试图通过从另一个数据帧中选择某些行来处理某些数据帧,请在加入或连接之前重置索引。
下面的一个示例显示了join和concat的一些有趣行为:
dat1 = pd.DataFrame({'dat1': range(4)}) dat2 = pd.DataFrame({'dat2': range(4,8)}) dat1.index = [1,3,5,7] dat2.index = [2,4,6,8] # way1 join 2 DataFrames print(dat1.join(dat2)) # output dat1 dat2 1 0 NaN 3 1 NaN 5 2 NaN 7 3 NaN # way2 concat 2 DataFrames print(pd.concat([dat1,dat2],axis=1)) #output dat1 dat2 1 0.0 NaN 2 NaN 4.0 3 1.0 NaN 4 NaN 5.0 5 2.0 NaN 6 NaN 6.0 7 3.0 NaN 8 NaN 7.0 #reset index dat1 = dat1.reset_index(drop=True) dat2 = dat2.reset_index(drop=True) #both 2 ways to get the same result print(dat1.join(dat2)) dat1 dat2 0 0 4 1 1 5 2 2 6 3 3 7 print(pd.concat([dat1,dat2],axis=1)) dat1 dat2 0 0 4 1 1 5 2 2 6 3 3 7
总的来说,你只是在寻找加入的机会:
> dat1 = pd.DataFrame({'dat1': [9,5]}) > dat2 = pd.DataFrame({'dat2': [7,6]}) > dat1.join(dat2) dat1 dat2 0 9 7 1 5 6
您还可以使用:
join()和concat()方法都可以解决这个问题。但是,有一个警告我必须提到:如果您试图通过从另一个数据帧中选择某些行来处理某些数据帧,请在加入或连接之前重置索引。
下面的一个示例显示了join和concat的一些有趣行为:
总的来说,你只是在寻找加入的机会:
相关问题 更多 >
编程相关推荐