Pandas中的分层数据
在pandas中,我们可以从现有的数据框架中安排数据。例如,我们有相同的名字和不同的特征,我们可以只写一次,而不是一直写这个名字。我们可以使用pandas从现有的数据框架中创建层次化的数据。
示例:
请看学生的科目详情。在这里,我们可以看到学生的名字总是重复的。
有了这个,我们需要内存来存储多个名字。我们可以通过使用数据层次结构来减少这一点。
示例:
# import pandas module for data frame
import pandas as pd
# Create dataframe for student data in different colleges
subjectsdata = {'Name': ['sravan', 'sravan', 'sravan', 'sravan',
'sravan', 'sravan', 'sravan', 'sravan',
'Ojaswi', 'Ojaswi', 'Ojaswi', 'Ojaswi',
'Ojaswi', 'Ojaswi', 'Ojaswi', 'Ojaswi',
'Rohith', 'Rohith', 'Rohith', 'Rohith',
'Rohith', 'Rohith', 'Rohith', 'Rohith'],
'college': ['VFSTRU', 'VFSTRU', 'VFSTRU', 'VFSTRU',
'VFSTRU', 'VFSTRU', 'VFSTRU', 'VFSTRU',
'VIT', 'VIT', 'VIT', 'VIT', 'VIT', 'VIT',
'VIT', 'VIT', 'IIT-Bhu', 'IIT-Bhu', 'IIT-Bhu',
'IIT-Bhu', 'IIT-Bhu', 'IIT-Bhu', 'IIT-Bhu',
'IIT-Bhu'],
'subject': ['java', 'dbms', 'dms', 'coa', 'python', 'dld',
'android', 'iot', 'java', 'dbms', 'dms', 'coa',
'python', 'dld', 'android', 'iot', 'java',
'dbms', 'dms', 'coa', 'python', 'dld', 'android',
'iot']
}
# Convert into data frame
df = pd.DataFrame(subjectsdata)
# print the data(student records)
print(df)
输出:
# Set the hierarchical index
df = df.set_index(['Name', 'college'], drop=False)
# print data frame
df
输出:
下一步是删除该名称。
# setting index
df = df.set_index(['Name', 'college'])
# print data frame
df
输出:
现在用交换水平得到大学作为指数。
# Swap the levels in the index
df.swaplevel('Name', 'college')
输出:
现在给大家总结一下结果
# Summarize the results by college
df.sum(level='college')
输出: