如何使用Python中的 Pandas 从 Excel 工作表中创建具有多个索引的数据透视表?
数据透视表一词可以定义为 Pandas函数,用于将电子表格样式的数据透视表创建为 DataFrame。它可以使用 pivot_table() 方法创建。
Syntax: pandas.pivot_table(data, index=None)
Parameters:
data : DataFrame
index: column, Grouper, array, or list of the previous
index: It is the feature that allows you to group your data.
Returns: DataFrame
注意:我们可以通过添加可选参数来进一步过滤表格。
示例 1:链接到 CSV 文件:CSV 文件
我们可以通过运行以下程序来查看数据:
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks.csv')
# Print the dataframe
df
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["Country"]))
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["Country","Salary"]))
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks_1.csv')
# Print the dataframe
df
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('dataset/new_players.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["century","name"]))
输出:
我们知道索引是允许我们对数据进行分组并指定多个列的功能,因为枢轴函数中的索引增加了详细程度和对数据进行分组。
在表中保留单个索引:
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["Country"]))
输出:
正如我们所看到的,分组是按国家/地区进行的,并且数字数据打印为与指定索引有关的所有值的平均值。
现在,在表中保留多个索引:
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["Country","Salary"]))
输出:
示例2:链接到 CSV 文件:CSV 文件
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('GeeksForGeeks_1.csv')
# Print the dataframe
df
输出:
将玩家得分的世纪数和他们的名字作为索引,我们得到:
Python3
# importing pandas as pd
import pandas as pd
# Create the dataframe
df=pd.read_csv('dataset/new_players.csv')
# Print the resultant table
print(pd.pivot_table(df,index=["century","name"]))
输出: