Pandas按名称索引和访问列

2 投票
1 回答
2785 浏览
提问于 2025-04-17 18:10

我正在尝试通过列名来访问 pandas 数据框,但在用特定列进行索引后,它返回的列值不正确。

import pandas as pd
rs =pd.read_csv('rs.txt', header="infer", sep="\t",  names=['id', 'exp','fov','cycle', 'color', 'values'], index_col=2)

rs.cycle.head()

我在这里用 'fov' 对数据框进行了索引,然后想访问 'cycle' 列,但却得到了 'color' 列的值。我觉得我可能漏掉了什么?


编辑:输入文件的前几行是:

6 3 1 G 0.96593 
6 3 1 O 0.88007 
6 3 1 R 0.94305 
6 3 2 B 0.90554 
6 3 2 G 0.93146

1 个回答

2

我觉得问题出在你的数据文件有5列,而你的names列表却有6个元素。你可以检查一下id这一列的前几个值,如果我没猜错的话,这些值都会是6。而exp这一列的前几个值应该是3

要解决这个问题,可以这样读取你的输入文件:

rs =pd.read_csv('rs.txt', header="infer", sep="\t",  names=['exp','fov','cycle', 'color', 'values'], index_col=2

Pandas会自动为每一行添加一个标识符。

撰写回答