Pandas DataFrame-查找列的索引值

时间:2016-08-04 18:20:59

标签: python pandas dataframe

我有一个DataFrame,其中包含ID,Name,Specification,Time等列。

我打开它们的文件路径

mc = pd.read_csv("C:\\data.csv", sep = ",", header = 0, dtype = str)

当我使用

检查我的列值时
mc.coulumns.values 

我发现我的身份证上有一个奇怪的角色,看起来像这样,

['/ufeffID', 'Name', 'Specification', 'Time']  

在此之后,我分配了ID如此的列

 mc.columns.values[0] = "ID"

当我使用

检查时
mc.columns.values 

我的结果是,

Array(['ID', 'Name', 'Specification', 'Time']) 

然后,我查了一下,

"ID" in mc.columns.values

它给了我"True"

然后我试过了,

mc["ID"]

我收到一条错误陈述,

keyError 'ID'.

我想获取ID列的值并删除ID列前面的奇怪字符?有什么方法可以解决这个问题吗?任何帮助,将不胜感激。先感谢您。

1 个答案:

答案 0 :(得分:2)

该utf-16 BOM,将encoding='utf-16'传递给read_csv,请参阅:https://en.wikipedia.org/wiki/Byte_order_mark#Representations_of_byte_order_marks_by_encoding

mc = pd.read_csv("C:\\data.csv", sep=",", header=0, dtype=str, encoding='utf-16')

以上应该有效FE FF是特定于utf-16 Big endian的BOM

此外,您应该使用rename而不是尝试覆盖np数组值:

mc.rename(columns={mc.columns[0]: "ID"}, inplace=True)

应该正常工作