gpt4 book ai didi

python-3.x - 数据框中的重复元素

转载 作者:行者123 更新时间:2023-12-01 03:05:11 26 4
gpt4 key购买 nike

大家好,我有以下数据框:

A | B | C
1 2 3
2 3 4
3 4 5
4 5 6

我试图只重复数据的最后两行,使其看起来像这样:

A | B | C
1 2 3
2 3 4
3 4 5
3 4 5
4 5 6
4 5 6

我试过使用附加、连接和重复都无济于事。

repeated = lambda x:x.repeat(2)
df.append(df[-2:].apply(repeated),ignore_index=True)

这将返回以下不正确的数据框:

A | B | C
1 2 3
2 3 4
3 4 5
4 5 6
3 4 5
3 4 5
4 5 6
4 5 6

最佳答案

您可以使用 numpy.repeat用于重复索引,然后通过 loc 创建 df1 , 最后追加到原始,但在通过 iloc 过滤掉最后 2 行之前:

df1 = df.loc[np.repeat(df.index[-2:].values, 2)]
print (df1)
A B C
2 3 4 5
2 3 4 5
3 4 5 6
3 4 5 6

print (df.iloc[:-2])
A B C
0 1 2 3
1 2 3 4

df = df.iloc[:-2].append(df1,ignore_index=True)
print (df)
A B C
0 1 2 3
1 2 3 4
2 3 4 5
3 3 4 5
4 4 5 6
5 4 5 6

如果想使用您的代码添加 iloc 以仅过滤最后 2 行:

repeated = lambda x:x.repeat(2)
df = df.iloc[:-2].append(df.iloc[-2:].apply(repeated),ignore_index=True)
print (df)
A B C
0 1 2 3
1 2 3 4
2 3 4 5
3 3 4 5
4 4 5 6
5 4 5 6

关于python-3.x - 数据框中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45284059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com