gpt4 book ai didi

python - 如何在连接后重新索引 pandas DataFrame

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:29 24 4
gpt4 key购买 nike

假设我像这样连接两个 DataFrame:

import numpy as np
import pandas as pd

array1 = np.random.randn(3,3)
array2 = np.random.randn(3,3)

df1 = pd.DataFrame(array1, columns=list('ABC'))
df2 = pd.DataFrame(array2, columns=list('ABC'))

df = pd.concat([df1, df2])

生成的 DataFrame df 如下所示:

          A         B         C
0 1.297362 0.745510 -0.206756
1 -0.056807 -1.875149 -0.210556
2 0.310837 -1.068873 2.054006
0 1.163739 -0.678165 2.626052
1 -0.557625 -1.448195 -1.391434
2 0.222607 -0.334348 0.672643

请注意,索引与原始 DataFrame 中的索引相同。我想重新索引 df,以便索引简单地从 0 运行到 5。我该怎么做?

(我试过 df = df.reindex(index = range(df.shape[0])) 但这给出了 ValueError: cannot reindex from a duplicate axis。这是因为原始轴包含重复项(两个 0、两个 1 等)。

最佳答案

您想将 ignore_index=True 传递给 concat :

In [68]:
array1 = np.random.randn(3,3)
array2 = np.random.randn(3,3)

df1 = pd.DataFrame(array1, columns=list('ABC'))
df2 = pd.DataFrame(array2, columns=list('ABC'))

df = pd.concat([df1, df2], ignore_index=True)
df

Out[68]:
A B C
0 -0.091094 0.460133 -0.548937
1 -0.839469 -1.354138 -0.823666
2 0.088581 -1.142542 -1.746608
3 0.067320 1.014533 -1.294371
4 2.094135 0.622129 1.203257
5 0.415768 -0.467081 -0.740371

这将忽略现有索引,因此实际上它会为新连接的索引设置一个从 0 开始的新索引

关于python - 如何在连接后重新索引 pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38377473/

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