串联后如何重新索引熊猫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开始的新索引

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...