[Index([(.... column names ...)],dtype ='object',name ='Sample Name')]均不在[index]

时间:2019-08-30 16:04:47

标签: python excel python-3.x pandas

我有一个看起来像df1的数据框

Sample Name    col1    col2   col3  
     a           1       2      3
     b           4       5      6
     c           7       8      9
从excel读取的

,然后对其进行转置并将转置的df存储在df1T中。我将索引设置为“样品名称”,因此列为样品名称

dfT=df.set_index('Sample Name').T

      a    b   c
col1  1    4   7
col2  2    5   8
col3  3    6   9

我有另一个带有a和b列的数据框df2。

      a    b
row1  x    y

我想从df1T中添加一行(例如:col1,我们可以命名为col1)到df2,仅采用df2(a和b)中的列

      a    b
row1  x    y
col1  1    4

为此,我写了

df2.loc["col1"]=df1T.loc["col1",[df2.columns]]

但是我收到错误消息,即使df1t.columns和df2.columns显示列名匹配并且正确,但索引(列名)中都没有...。

1 个答案:

答案 0 :(得分:1)

您可以使用:

df2.loc["col1"]=df.loc["col1",df2.columns.tolist()]

输出:

        a   b
row1    x   y
col1    1   4

您怎么了?

[df2.columns] 

它是一个包含df.columns的列表,但不会创建具有列索引的列表。

type(df2.columns)

返回:

pandas.core.indexes.base.Index