我有一个看起来像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显示列名匹配并且正确,但索引(列名)中都没有...。
答案 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