我试图在 Dataframe 中查找中心= 1000且元素在范围(10,20)内的行。找到这些行后,我想从列[“1”,“2”,“3”]中复制它们的值,并将它们作为一行,其中中心= 1000且元素= 89位于列[“1C”,“2C”,“3C”]中。
我试过下面的代码,但它似乎不工作:
df.loc[(df["center"] == 1000) & (df["element"] >= 10) & (df["element"] <= 20), ["1C", "2C", "3C"]] = df.loc[ (df["center"] == 1000) & (df["element"] == 89), ["1", "2", "3"]].sum().values
因为它是函数的一部分,所以不会出错,但我不明白为什么它不能工作.
以下是示例数据集:
0 center element 1 2 3 1C 2C 3C
1 1000 11 30 30 30 0 0 0
2 1000 12 70 70 70 0 0 0
3 1000 89 0 0 0 0 0 0
4 1001 11 5 5 5 0 0 0
5 1002 12 6 7 8 0 0 0
以下是所需的输出:
0 center element 1 2 3 1C 2C 3C
1 1000 11 30 30 30 0 0 0
2 1000 12 70 70 70 0 0 0
3 1000 89 0 0 0 100 100 100
4 1001 11 5 5 5 0 0 0
5 1002 12 6 7 8 0 0 0
1条答案
按热度按时间kadbb4591#
您可以对 Dataframe 执行以下操作得到结果: