熊猫concat不断添加新的索引列

时间:2020-09-06 19:58:45

标签: python pandas concat

我是Python和Pandas的新手,在我的小项目中遇到了concat(?)问题。该代码几乎可以正常工作,但是当连续运行多次时,它会不断添加新的索引列。这是我不想做的事情。我一直在尝试各种技巧,例如删除第一列,隐藏索引和重置索引,但是无法正常工作。我可以在Excel中删除多余的列,但我认为可以通过更改代码来解决。

关于Excel数据:第一行包含列标题,没有索引。

您知道我的代码有什么问题吗? 您也可以提出改进建议:)

import pandas as pd
import numpy as np


table1_data = r'C:\Users\--->file1.xlsx'
table2_data = r'C:\Users\--->file2.xlsx' # this is always new data 
database_data = r'C:\Users\--->file3xlsx'

table1 = pd.read_excel(table1_data, header=0, index_col=None,keep_default_na=True)
table2 = pd.read_excel(table2_data, header=0, index_col=None,keep_default_na=True)
database = pd.read_excel(database_data, header=0, index_col=None,keep_default_na=True)


sold = table1[~table1.License.isin(table2.License)]
sold['Deleted'] = table2.loc[1,'Deleted']

database = pd.concat([database, sold])

s = sold.set_index('License')['Deleted']
table1['Deleted'] = table1['License'].map(s).fillna(table1['Deleted']).astype('datetime64[ns]')

cond = table1['License'].isin(sold['License'])
table1.drop(table1[cond].index, inplace = True)

bought = table2[~table2.License.isin(table1.License)]
bought['Deleted'] = ''

table1 = pd.concat([table1,bought])




database.to_excel(r'C:\Users\--->file3.xlsx')
table1.to_excel(r'C:\Users\--->file1.xlsx')

Something like this happens when running code multiple times

1 个答案:

答案 0 :(得分:0)

您可以使用ignore_index=True

A = pd.DataFrame(data={"c1": [1, 2], "c2": [3, 4]})
B = pd.DataFrame(data={"c3": [5, 6], "c4": [7, 8]})

C = pandas.concat([A, B], ignore_index=True)
C
--------------------
|   |c1 |c2 |c3 | c4|
------------------
| 0 |1  |3  |NaN|NaN|
| 1 |2  |4  |NaN|NaN|
| 2 |NaN|NaN|5  |7  |
| 3 |NaN|NaN|6  |8  |
---------------------