我对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
您可以使用
ignore_index=True
:相关问题 更多 >
编程相关推荐