首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中删除多个excel文件的索引列

在python中删除多个excel文件的索引列
EN

Stack Overflow用户
提问于 2020-03-03 08:41:56
回答 3查看 407关注 0票数 1

我有多个excel工作表,它们的列名相同。当我从以前的计算中保存文件时,我忘记将“日期”设置为索引,现在所有这些文件(40)都有编号为1-200的索引列。如果我将它们加载到python中,它们将再次获得一个额外的索引列,从而产生两个未命名的列。我知道我可以使用glob函数访问我的所有文件。但是我是否可以访问所有文件,删除/删除未命名的索引列,并将新索引设置为date列?

下面是一个excel工作表的示例

代码语言:javascript
复制
df = pd.DataFrame({
'': [0, 1,2,3,4],
'Date': [1930, 1931, 1932, 1933,1934],
'value': [11558522, 12323552, 13770958, 18412280, 13770958],
}) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-03 09:17:50

我认为最简单的第一列被设置为索引错误,然后使用DataFrame.set_indexDate列重写它们:

代码语言:javascript
复制
import glob, os

for file in glob.glob('subset/*.xlsx'):

    df = pd.read_excel(file, index_col=[0]).set_index('Date')
    print (df)

    #new excel files

    h,t = os.path.split(file)
    df.to_excel(os.path.join(h, 'new_' + t))

    #overwrite excel files (first backup data if something failed for avoid lost data)
    #df.to_excel(file)
票数 0
EN

Stack Overflow用户

发布于 2020-03-03 09:09:56

dfs = [pd.read_csv( file ).set_index('Date')['value']用于glob.glob(“/your/path/to/glob.glob/*..csv”)中的文件

票数 0
EN

Stack Overflow用户

发布于 2020-03-03 09:14:07

对熊猫来说,一个快速的方法是:

代码语言:javascript
复制
>>> df = df.drop('', axis=1)
>>> df = df.set_index('Date')
>>> df
         value
Date          
1930  11558522
1931  12323552
1932  13770958
1933  18412280
1934  13770958

(我是从内存中完成上述工作的,但是关于这类事情的一般提示是在文档中查找适当的函数。https://pandas.pydata.org/pandas-docs/stable/reference/frame.html )

还可以在加载文件时指定标题列:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html

index_colint,int列表,默认无

列(0-索引)用作DataFrame的行标签。如果没有这样的列,则不传递。如果传递了一个列表,这些列将被组合到一个MultiIndex中。如果使用usecols选择数据子集,则index_col基于.子集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60503194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档