python - Pandas Dataframe - 设置行等于其他行

标签 python pandas dataframe

对于这个基本数据框,我想将行设置为与其他行相等。我一次只做一行没有问题:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 5))
df.loc[6,:] = df.loc[4,:]

但是,当我尝试对多行执行此操作时,它们被设置为 NaN 而不是我引用的行:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 5))
df.loc[5:6,:] = df.loc[3:4,:]

我已通读文档,但找不到解释。有任何想法吗?谢谢。

最佳答案

Pandas 将始终尝试根据索引对齐数据。当您将一个 DataFrame 分配给另一个 DataFrame 时,它​​会尝试根据索引而不是连续的行号来匹配数据。

因此,当您分配给第 5-6 行时,它会在分配的数据中查找具有这些索引标签的行——也就是说,它会查找索引为 5 和 6 的行。由于传入的数据不没有任何这样的行(因为您传入了一个仅包含第 3 行和第 4 行的切片),它找不到任何匹配的数据,因此它放入 NaN。

要分配“原始”值,忽略索引,您可以执行 df.loc[5:6,:] = df.loc[3:4,:].values .

关于python - Pandas Dataframe - 设置行等于其他行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22430195/

相关文章:

python - 为什么使用get_letter_type 函数的pandas groupby 示例中, 'consonant' 组不包括 'B' 列?

python - Pandas:使用 timedelta 合并两个数据帧

python - Pandas 数据框 : For loop that adds a fixed integer if the value exists in previous rows

python - Dataframe 将 float 转换为全小数的字符串

python - 你能在不加载整个图像的情况下循环遍历图像中的像素吗?

python - 在 pandas 数据框中应用 groupby 两次

python - 访问 pandas 数据框列中的字典键和值

Python:将列表项替换为字符串的有效方法

python - 使用 python 的数据透视表

r - 用另一列定义一个新变量来计算组元素