我有一个包含运动专栏的excel文件,其中有运动名称和运动员名字。如果我点击体育名称,体育人员名字就会消失,即体育名称是体育名称的孩子。
如果我点击蟋蟀然后ramesh,suresh,mahesh名字消失,即板球是ramesh的父母,suresh和mahesh像同样的足球是pankaj,riyansh,suraj的父母。
我想阅读这个excel文档并在python pandas Dataframe中进行转换。我尝试用pandas pivot_table阅读,但我没有取得任何成功。
我尝试阅读此excel表并转换为数据帧。
df = pd.read_excel("sports.xlsx",skiprows=7,header=0)
d = pd.pivot_table(df,index=["sports"])
print d
但是我在单列中获得所有体育价值观我希望通过体育名称和相应的体育名称将其分开。
预期输出:
sports_name player_name age address
cricket ramesh 20 aaa
cricket suresh 21 bbb
cricket mahesh 22 ccc
football pankaj 24 eee
football riyansh 25 fff
football suraj 26 ggg
basketball rajesh 28 iii
basketball abhijeet 29 jjj
答案 0 :(得分:3)
pandas.pivot_table是支持数据分析并帮助您创建类似于excel的数据透视表,而不是读取excel数据透视表。
将电子表格样式的数据透视表创建为DataFrame。数据透视表中的级别将存储在结果DataFrame的索引和列上的MultiIndex对象(层次索引)中
文档中的示例
>>> df
A B C D
0 foo one small 1
1 foo one large 2
2 foo one large 2
3 foo two small 3
4 foo two small 3
5 bar one large 4
6 bar one small 5
7 bar two small 6
8 bar two large 7
>>> table = pivot_table(df, values='D', index=['A', 'B'],
... columns=['C'], aggfunc=np.sum)
>>> table
small large
foo one 1 4
two 6 NaN
bar one 5 4
two 6 7
现在,为了帮助您解决问题,我创建了一个示例数据集和一个数据透视表。
然后将excel表读入pandas数据帧。此数据框包含要使用df.fillna(method='ffill')
替换的nansdf = pd.read_excel(pviotfile,skiprows=12,header=0)
df=df.fillna(method='ffill')
print (df)
输出
Sports Name Address Age
0 basketball Abhijit 129 ABC 20
1 basketball Rajesh 128 ABC 20
2 Cricket Mahesh 123 ABC 20
3 Cricket Ramesh 126 ABC 20
4 Cricket Suresh 124 ABC 20
5 Football Riyash 125 ABC 20
6 Football suraj 127 ABC 20