【问题标题】:How does pandas calculate indexes?pandas 是如何计算索引的?
【发布时间】:2016-11-11 04:17:33
【问题描述】:

我想在来自 csv 的数据框中包含时间序列数据。我使用以下程序:

path = [r'C:\data_' + str(x) + ".csv" for x in range(1150, 1177)]
data_df = pd.concat(pd.read_csv(f, delimiter = ",", header = None) for f in path)

data_df.head()

结果如下:

data_df.info()

索引(1 到 187481)怎么可能不同于行数(5387507)?

在做

data_df.reset_index()

一切正常:

那么初始指数是如何计算的呢?

【问题讨论】:

  • 尝试在pd.concat() 调用中使用ignore_index=Truepd.read_csv() 的每次调用都会为每个 CSV 文件生成它自己的索引,当你连接它们时 - pd.concat() 默认情况下只是复制它们,所以你会有重复的......
  • 感谢@MaxU 的帮助!

标签: python pandas indexing time-series


【解决方案1】:

indexes 中有重复项,因为DataFrame 中的每个indexconcat 函数中都是从0 开始的。

正如MaxU 评论的那样,解决方案是将参数ignore_index=True 添加到concat - docs

data_df = pd.concat(pd.read_csv(f, delimiter = ",", header = None) for f in path, ignore_index=True)

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2019-12-26
    • 2020-04-13
    • 1970-01-01
    • 2021-12-16
    • 2021-12-27
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多