如何获得具有相同名称的单行列的值?

星状

我有具有相同列名的数据框,所以我将它们合并

df1

        wave   num   stlines 
0    4050.32   3.0  0.282690
1    4208.98   5.5  0.490580
2    4374.94   9.0  0.714830
3    4379.74   9.0  0.314040
4    4398.01  14.0  0.504150
5    4502.21   8.0  0.562780

df2

        wave  num  stlines 
0    4050.32    3  0.28616 
1    4208.98    6  0.48781 
2    4374.94    9  0.71548 
3    4379.74   10  0.31338 
4    4398.01   15  0.49950  
5    4502.21    9  0.56362 

df3

        wave   num   stlines 
0    4050.32   3.0  0.282690
1    4208.98   7.5  0.490580
2    4374.94   9.0  0.714830
3    4379.74   9.0  0.314040
4    4398.01  14.0  0.504150
5    4502.21   8.0  0.562780

合并后,结果数据帧如下所示:

df=pd.merge(df1,df2,df3, on='wave',axis=1,join='inner')


      wave   num_x  stlines_x  num_x  stlines_x  num_x  stlines_x 
0    4050.32   3.0  0.282690    3     0.28616      3.0  0.282690
1    4208.98   5.5  0.490580    6     0.48781      5.5  0.490580 
2    4374.94   9.0  0.714830    9     0.71548      9.0  0.714830
3    4379.74   9.0  0.314040   10     0.31338      9.0  0.314040
4    4398.01  14.0  0.504150   15     0.49950     14.0  0.504150
5    4502.21   8.0  0.562780    9     0.56362      8.0  0.562780

因此,现在如果我想num_x对任何行取所有库仑的值和名称那我怎样才能得到它们呢?

我可以使用以下命令获取具有相同名称的完整列

df.num_x

    num   num   num
 0    3    3.0    3
 1  5.5      6  7.5 
 2    9    9.0    9
 3   10   14.0   10 
 4   15    8.0   15
 5    9    3.0    9

但是当我尝试对单行“ 1”执行相同操作时,它不起作用:

df.num_x['1']

所需的结果应如下所示:

    num   num   num
 1  5.5     6    7.5

我如何获得它们?

耶斯列尔

您需要DataFrame.loc

df.loc[1, 'num_x']

在大熊猫中,相同的列名是有问题的,因为第一,第二不容易理解num_x,所以建议创建MultiIndex

dfs = [df1, df2, df3]

df = pd.concat([x.set_index('wave') for x in dfs], 
               axis=1, 
               keys=['df1','df2','df3'], join='inner')
print (df)
          df1          df2            df3         
          num  stlines num  stlines   num  stlines
wave                                              
4050.32   3.0  0.28269   3  0.28616   3.0  0.28269
4208.98   5.5  0.49058   6  0.48781   7.5  0.49058
4374.94   9.0  0.71483   9  0.71548   9.0  0.71483
4379.74   9.0  0.31404  10  0.31338   9.0  0.31404
4398.01  14.0  0.50415  15  0.49950  14.0  0.50415
4502.21   8.0  0.56278   9  0.56362   8.0  0.56278

然后xs用于选择:

df1 = df.xs('num', axis=1, level=1)
print (df1)
          df1  df2   df3
wave                    
4050.32   3.0    3   3.0
4208.98   5.5    6   7.5
4374.94   9.0    9   9.0
4379.74   9.0   10   9.0
4398.01  14.0   15  14.0
4502.21   8.0    9   8.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得具有相同名称的多个文本输入的值

如何获得具有相同名称,数字和城市的重复值?

MySQL查询:单行中所有具有相同名称的值

如何从具有相同名称的XML获取特定值

如何添加具有相同名称的pandas列的值?

具有相同名称的值的总和

如何执行列和函数输入具有相同名称的函数?

如何使用jQuery获得具有相同名称的多个<input>数组

如何获得在Django中其他类别下具有相同名称的垂直子类别?

如何搜索具有相同名称和相同级别的 XML 节点值?

如何使用LINQ to XML连接具有相同名称值的所有子元素

如何对所有具有相同名称 r studio 的值求和?

如何在Python中选择所有具有相同名称但不同值的行

具有相同名称的枚举值错误

jQuery获取具有相同名称的属性值

快速捕获具有相同名称的值

删除具有相同名称属性的表单值

具有相同名称值的SQL concat行

通过PHP连接具有相同名称的输入值

获取具有相同名称的多输入文本的值

html抓取,获取具有相同名称的不同值

跨类复制具有相同名称的值

如何更改具有相同名称的多个类的每个值

如何从具有相同名称的元素组中仅获取选定的值?

如何将值从locals()分配给具有相同名称的局部变量?

如何在Python中对具有相同名称的元组的值求和

如何使用linq从xml获取具有相同名称的不同值

当多个节点具有相同名称时,如何在XML中编辑特定节点的值?

如何合并具有相同名称的多个列,每次都保持最高值?