Pandas中不同的read_csv index_col参数
在处理Pandas DataFrame时,经常需要读取外部文件来进行数据处理。其中,read_csv是较常用的函数之一。该函数需要一些参数来帮助我们处理数据,其中index_col是其中一个比较常用的参数。在Pandas中,我们可以选择将哪一列作为索引。
在本文中,我们将介绍Pandas中不同的read_csv index_col参数。
阅读更多:Pandas 教程
1. index_col = None
如果我们在读取csv文件时没有指定index_col的话,那么Pandas自动会按照默认的方式将每一行的第一个元素作为索引。我们可以通过设置index_col为None来覆盖此默认值。
例如,我有一个students.csv文件,其数据如下所示:
name,age,gender,score
Tom,18,Male,78
Lucy,19,Female,89
Jack,20,Male,99
如果我们使用以下方式读取文件:
import pandas as pd
df = pd.read_csv("students.csv", index_col=None)
print(df.head())
则输出结果为:
name age gender score
0 Tom 18 Male 78
1 Lucy 19 Female 89
2 Jack 20 Male 99
可以看到,此时自动生成的索引就是默认的数字索引。若我们没有指定index_col的话,就可以通过None来覆盖默认的方式,保留数字索引。
2. index_col = 0
当我们在读取csv文件时,如果指定了index_col=0,则Pandas会将第一列作为索引。
例如,我使用上述的students.csv文件,我们使用如下方式读取文件:
import pandas as pd
df = pd.read_csv("students.csv", index_col=0)
print(df.head())
则输出结果为:
age gender score
name
Tom 18 Male 78
Lucy 19 Female 89
Jack 20 Male 99
可以看到,此时自动生成的索引就是我们指定的第一列name。
3. index_col = False 或 index_col = “”
如果我们不想将任何一列作为索引,则可以设置为index_col=False或index_col=””。
例如,我使用上述的students.csv文件,我们使用如下方式读取文件:
import pandas as pd
df = pd.read_csv("students.csv", index_col=False)
print(df.head())
则输出结果为:
name age gender score
0 Tom 18 Male 78
1 Lucy 19 Female 89
2 Jack 20 Male 99
可以看到,此时自动生成的索引就是默认的数字索引,而不是指定的name列。
4. index_col = [n]
当我们有多列需要作为索引时,则可以设置index_col为一个列表,其中包含了需要作为索引的多列。
例如,我使用上述的students.csv文件,我们使用如下方式读取文件:
import pandas as pd
df = pd.read_csv("students.csv", index_col=[0, 2])
print(df.head())
则输出结果为:
age score
name gender
Tom Male 18 78
Lucy Female 19 89
Jack Male 20 99
可以看到,此时生成了多级索引,第一级是name列,第二级是gender列。
总结
本文介绍了Pandas中不同的read_csv index_col参数。通过设置index_col参数,我们可以指定不同的列作为索引,或者禁用索引。在Pandas中,index_col还可以支持多个列同时作为索引,当然需要用列表进行指定。该参数的合理设置使得我们可以更加方便地进行数据处理和分析。
极客教程