首页 > 解决方案 > 将所有行更改为与第一行具有相同的数据,但一列除外

问题描述

我有一个df这样的数据框:

x1  x2  x3  x4  x5  x6  x7  x8
1   0   5   6   10  11  56  7
67  10  4   87  2   34  22  12
44  16  9   9   5   11  56  7
99  82  10  6   87  9   5   8
5   54  66  7   36  3   2   7

我想将每一行更改为第 1 行,但 x1 列除外。

我的预期输出是:

x1  x2  x3  x4  x5  x6  x7  x8
1   0   5   6   10  11  56  7
67  0   5   6   10  11  56  7
44  0   5   6   10  11  56  7
99  0   5   6   10  11  56  7
5   0   5   6   10  11  56  7

我怎么能在熊猫中做到这一点?

标签: pythonpandas

解决方案


df.loc[:, "x2":] = df.loc[0, "x2":].values
print(df)

印刷:

   x1  x2  x3  x4  x5  x6  x7  x8
0   1   0   5   6  10  11  56   7
1  67   0   5   6  10  11  56   7
2  44   0   5   6  10  11  56   7
3  99   0   5   6  10  11  56   7
4   5   0   5   6  10  11  56   7

编辑:对于列x4

x4 = df["x4"].copy()
df.loc[:, :] = df.loc[0, :].values
df["x4"] = x4
print(df)

印刷:

   x1  x2  x3  x4  x5  x6  x7  x8
0   1   0   5   6  10  11  56   7
1   1   0   5  87  10  11  56   7
2   1   0   5   9  10  11  56   7
3   1   0   5   6  10  11  56   7
4   1   0   5   7  10  11  56   7

推荐阅读