Pandas index column



我正在尝试将三个文件连接到一个xlsx文件中。我可以连接,但索引列没有被删除。使用concat函数后,我的Dataframe三次将所有三个xlsx文件的索引列从0到3000。我应该如何解决这个问题?

详细信息-

我有一个包含3个工作表的amex-listing.xlsx文件。

sheet1=nyse

sheet2=amex

sheet3=纳斯达克

代码-

xls = pd.ExcelFile('amex-listing.xlsx')
exchanges = xls.sheet_names
pd.set_option("display.max_columns",100)
final_file = 'listing.xlsx'
listings = []
for exchange in exchanges:
listing = pd.read_excel('amex-listing.xlsx',sheet_name=exchange, na_values='NaN', index_col=False)
listing['exchange'] = exchange
sup_df = pd.DataFrame()
sup_df = listing.append(sup_df)
listings.append(sup_df)
listings = pd.concat(listings)

输出数据帧-

index_issue

dataframe_view_after_concat

如何删除/忽略/删除未命名的索引列?有可能的解决方案吗?

输出具有未命名索引列的xlxs文件-

amex指数

美国纳斯达克指数

纳斯达克指数

Pandas的惯例是在左侧显示行索引。您不能删除索引(除非您设置了其他类型的索引,但仍在那里进行索引(。如果你不想看到重复的索引(0到3000重复3次(,你可以重置索引,通过reset_index()重新序列化索引号(0到9002左右(,如下所示:

假设concat之后的数据帧名称为df

df = df.reset_index(drop=True)    

编辑

如果您只是不想看到行索引,并且可以将列Symbol设置为索引,则可以使用:

df = df.set_index('Symbol')    

然后,您将不再看到原始默认范围索引。注意,通过这种方式,相同Symbol的行将被放置在一起。你必须考虑这对你来说是否合适。

最新更新