微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

串联后如何重新索引熊猫DataFrame

假设我将两个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:无法从重复轴重新索引.这是因为原始轴包含重复项(两个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开始的新索引

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐