【问题标题】:How to index a pandas data frame starting at n?如何索引从 n 开始的熊猫数据框?
【发布时间】:2018-05-10 23:16:32
【问题描述】:

是否可以在 pandas 数据框中从 n 开始索引?

我有一些数据集保存为 csv 文件,并想添加列索引,其行号从上一个文件中最后一个行号结束的位置开始。

例如,对于第一个文件,我使用的以下代码运行良好,因此我得到了一个输出 csv 文件,其中的行从 1 到 1048574 开始,正如预期的那样:

yellow_jan['index'] = range(1, len(yellow_jan) + 1)

我想对 yellow_feb 文件做同样的事情,但从 1048575 开始行索引等等。

感谢任何帮助!

【问题讨论】:

  • df.index = np.arange(start_from, start_from+length+1)

标签: python pandas csv dataframe indexing


【解决方案1】:
df["new_index"] = range(10, 20)
df = df.set_index("new_index")
df

【讨论】:

    【解决方案2】:

    如果您的计划是连接您可以使用的数据框

    import pandas as pd
    import numpy as np
    df1 = pd.DataFrame({"a": np.arange(10)})
    df2 = pd.DataFrame({"a": np.arange(10,20)})
    df = pd.concat([df1, df2],ignore_index=True)
    

    否则

    df2.index += len(df)
    

    【讨论】:

      【解决方案3】:

      你可以在末尾重置索引或定义一个局部变量并在 `arange' 函数中使用它。使用您读取的每个文件的行数更新变量。

      【讨论】:

      • 非常感谢 Roo!是的,就我而言,仅使用重置索引就可以实现我的目标。这是一段对我来说效果很好的代码:df = df.reset_index() df['index'] = df.index + 1048575