python数据帧中所有行的零索引

ga9*_*asl 3 python indexing dataframe python-3.x pandas

我在索引 python 时遇到问题dataframe。我有数据框,我用循环填充它。我把它简化成这样:

d = pd.DataFrame(columns=['img', 'time', 'key'])
for i in range(5):
    image = i
    timepoint = i+1
    key = i+2
    temp = pd.DataFrame({'img':[image], 'timepoint':[timepoint], 'key': [key]})
    d = pd.concat([d, temp])
Run Code Online (Sandbox Code Playgroud)

问题是因为它显示0为所有行的索引,我无法访问基于.loc[]. 有人知道如何解决问题并获得正常的索引列吗?

Jan*_*egt 7

d = d.reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

PS:更好的做法是创建一个行列表,然后将其转换为 DataFrame,计算成本要低得多,并且会立即创建一个良好的索引。

该列表可以是与 DataFrame init 中的列组合的列表列表,也可以是以列名作为键的字典列表。在你的情况下:

list_of_dicts = []
for i in range(5):
    new_row = {'img': i, 'time': i+1, 'key': i+2}
    list_of_dicts.append(new_row)
d = pd.DataFrame(new_row)
Run Code Online (Sandbox Code Playgroud)


3kt*_*3kt 6

您可能希望ignore_index在串联中使用参数:

d = pd.concat([d, temp], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果:

   img  key time  timepoint
0  0.0  2.0  NaN        1.0
1  1.0  3.0  NaN        2.0
2  2.0  4.0  NaN        3.0
3  3.0  5.0  NaN        4.0
4  4.0  6.0  NaN        5.0
Run Code Online (Sandbox Code Playgroud)