Pandas 如何将第一列设为索引
基础知识简介:
‘Pandas’是Python中最重要的库之一。它被广泛用于机器学习和数据分析的不同应用中。使用Pandas,程序员可以创建、读取和操作大量数据,并处理任何文件。’Pandas’有许多ML工具,可以应用于大量数据并得到所需的结果。
在Pandas中,数据可以以两种形式进行排列:
- Series
- DataFrames
- Series可以表示一维排列的数据,类似于数组或列表。
- 而DataFrame则是数据的多维表示,类似于表格。它只是一组Series的数组。
这是一个简单的示例程序:
import pandas as p
name = p. Series (["Raghav", "Charan", "Santhosh"])
roll = p. Series ([301, 202, 103])
branch = p. Series (["ECE", "EEE", "CSE"])
age = p. Series ([19, 18, 19])
dataframe = p. DataFrame ({'name': name, 'roll': roll, 'branch': branch, 'age': age})
print (dataframe)
输出:
name roll branch age
0 Raghav 301 ECE 19
1 Charan 202 EEE 18
2 Santhosh 103 CSE 19
理解:
创建了三个单独的Series-名称、年龄、编号和分支。然后将它们合并成一个数据帧来表示一个表。
- 将数据帧的进入被视为一个键值对。
- 键表示列名,值表示列中的数据。
- 它默认创建索引从0到行数-1来表示表格展示中的行。
- 程序员可以将任何列设置为索引,而不仅仅是0到n。本教程将解释如何做到这一点。
set_index 方法
鉴于方法和工具的简单性和丰富性,我们可以使用一个简单的方法将任何列设置为索引, “set_index().”
语法:
DataFrame. set_index (columns, drop = True, append = False, in place = False, verify_integrity = False)lass="codeblock">
- columns(列): 要设置为索引的列的列表。
- drop(丢弃): 如果设置为False,在它被用作索引之后,该列将再次在表内指定,就像普通的列一样。因此,默认情况下设置为True。
- append(追加): 如果设置为True,该列将追加到现有的索引中,而不是成为表的唯一索引。默认情况下设置为False。
- inplace(就地操作): 如果设置为True,则确定是使用新的数据框还是更新当前的数据框。默认情况下设置为False。
- verify_integrity(验证完整性): 如果设置为True,它将检查索引中是否有重复值,并在有重复值时返回一个ValueError。默认情况下设置为False。
示例:
import pandas as p
Studentdata = {
"Names": ["Raghav", "Charan", "Santosh"],
"Branch": ["ECE", "B-Arch", "AIML"],
"Age": [19, 18, 19],
"CGPA": [9.1, 9.4, 9.6]
}
dataframe = p. DataFrame (Student data, index = ["Student1", "Student2", "Student3"])
print ("original dataframe: ")
print (dataframe)
dataframe = dataframe. set_index (['Branch'])
print ("\nBranch column as index to the data frame: ")
print (dataframe)
print ("\nNames and Age columns as an index to the data frame: ")
dataframe = dataframe. set_index (['Names', 'Age'])
print (dataframe)
输出:
Original dataframe:
Names Branch Age CGPA
Student1 Raghav ECE 19 9.1
Student2 Charan B-Arch 18 9.4
Student3 Santosh AIML 19 9.6
Branch column as the index to the data frame:
Names Age CGPA
Branch
ECE Raghav 19 9.1
B-Arch Charan 18 9.4
AIML Santosh 19 9.6
Names and Age columns as the index to the data frame:
CGPA
Names Age
Raghav 19 9.1
Charan 18 9.4
Santosh 19 9.6
理解:
在上面的代码中,第一部分将“Branch”列作为索引,一旦它被作为索引,它将从表中删除,因为默认情况下drop参数设置为True。因此,在下一部分中,当“Names”和“Age”列被作为索引时,“Branch”列将不存在。
- 处理.csv文件:
使用pandas,程序员可以处理任何文件。例如,要处理CSV文件:
- CSV文件是一种以逗号分隔的值存储在表格中的文本文件。
程序:
import pandas as p
Employeedata = {
"Names": ["Sudha", "Harini", "Venkat"],
"Branch": ["HR", "Developer", "Sales"],
"Age": [44, 23, 44],
"Salary": [112000, 94000, 122000],
"Experience (yrs)": [8, 2, 8]
}
dataframe = p. DataFrame (Employeedata)
print (dataframe)
dataframe. to_csv ('samplefile.csv', index = False)
dataframe = p. read_csv ('samplefile.csv', index_col = 0)
dataframe. head ()
输出:
Names Branch Age Salary Experience (yrs)
0 Sudha HR 44 112000 8
1 Harini Developer 23 94000 2
2 Venkat Sales 44 122000 8
理解:
使用 .to_csv(),数据帧被转换成CSV文件,并使用 .read_csv(),读取该文件。在这个数据帧上,我们可以将索引更改为任何想要的列,就像普通的数据帧一样:
dataframe. set_index ('Names')
像普通的数据框一样,CSV文件中的数据框将被修改,索引变为“Names”列。该文件可以在python目录中找到并进行检查: