英文:
Pandas : change the index of the duplicates
问题
我有2个DataFrame:df0
和df1
,以及df1.shape[0] > df1.shape[0]
。
df0
和df1
具有完全相同的列。
df0
的大多数行都在df1
中。
df0
和df1
的索引是
df0.index = range(df0.shape[0])
df1.index = range(df1.shape[0])
然后我创建了dft
dft = pd.concat([df0, df1], axis=0, sort=False)
并使用以下代码删除了重复的行
dft.drop_duplicates(subset='this_col_is_not_index', keep='first', inplace=True)
在dft
的索引上我有一些重复的行。例如:
dft.loc3.shape
返回
(2, 38)
我的目标是将返回的第二行的索引更改为具有唯一索引3
。
这第二行的索引应该是dft.index.sort_values()[-1]+1
。
我想在所有重复的行上应用这个操作。
参考链接:
英文:
I have 2 DataFrames : df0
and df1
and df1.shape[0] > df1.shape[0]
.
df0
and df1
have the exact same columns.
Most of the rows of df0
are in df1
.
The indices of df0
and df1
are
df0.index = range(df0.shape[0])
df1.index = range(df1.shape[0])
I then created dft
dft = pd.concat([df0, df1], axis=0, sort=False)
and removed duplicated rows with
dft.drop_duplicates(subset='this_col_is_not_index', keep='first', inplace=True)
I have some duplicates on the index of dft
. For example :
dft.loc[3].shape
returns
(2, 38)
My aim is to change the index of the second row returned to have a unique index 3
.
This second row should be indexed dft.index.sort_values()[-1]+1
.
I would like to apply this operation on all duplicates.
References :
Python Pandas: Get index of rows which column matches certain value
答案1
得分: 2
在concat
中添加参数ignore_index=True
以避免重复的索引值:
dft = pd.concat([df0, df1], axis=0, sort=False, ignore_index=True)
英文:
Add parameter ignore_index=True
to concat
for avoid duplicated index values:
dft = pd.concat([df0, df1], axis=0, sort=False, ignore_index=True)
答案2
得分: 1
Use reset_index(drop=True)
dft.reset_index(drop=True)
英文:
Use reset_index(drop = True)
dft.reset_index(drop=True)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论