Python学习——Pandas

import  pandas as pd
import numpy as np
df=pd.read_csv("export.csv")
df
分类 食物名 重量 蛋白质 脂肪 膳食纤维 碳水化物
0 谷物类 稻米 26 2.192723 0.192691 0.132008 19.879120 0.768167 1.976958
1 谷物类 稻谷(早籼) 16 2.481894 0.551532 0.350975 18.752089 0.401114 3.259053
2 谷物类 大麦(元麦) 29 2.990228 0.410423 2.902280 18.586319 0.469055 3.811075
3 谷物类 大黄米(黍) 26 3.507163 0.696275 0.902579 17.432665 0.438395 7.736390
4 谷物类 方便面 19 1.811441 4.023305 0.133475 11.612288 218.135593 4.766949
... ... ... ... ... ... ... ... ... ...
676 豆乳类 青豆(青大豆) 24 2.292225 8.348525 3.860590 3.040214 2.434584 0.434316
677 豆乳类 酸豆乳 134 113.507463 2.955224 1.611940 0.000000 1.491045 24.985075
678 豆乳类 素大肠 59 37.058824 10.647059 2.117647 0.588235 0.000000 85.117647
679 豆乳类 素火腿 43 23.459716 8.146919 5.630332 0.383886 11.085782 288.298578
680 豆乳类 稻米3(粳,特级) 27 1.970000 0.110000 0.110000 20.290000 1.670000 6.470000

681 rows × 9 columns

df['重量']
0       26
1       16
2       29
3       26
4       19
      ... 
676     24
677    134
678     59
679     43
680     27
Name: 重量, Length: 681, dtype: int64

修改索引值(可以自己指定,方便看),默认是012……

df=df.set_index('食物名')
df
分类 重量 蛋白质 脂肪 膳食纤维 碳水化物
食物名
稻米 谷物类 26 2.192723 0.192691 0.132008 19.879120 0.768167 1.976958
稻谷(早籼) 谷物类 16 2.481894 0.551532 0.350975 18.752089 0.401114 3.259053
大麦(元麦) 谷物类 29 2.990228 0.410423 2.902280 18.586319 0.469055 3.811075
大黄米(黍) 谷物类 26 3.507163 0.696275 0.902579 17.432665 0.438395 7.736390
方便面 谷物类 19 1.811441 4.023305 0.133475 11.612288 218.135593 4.766949
... ... ... ... ... ... ... ... ...
青豆(青大豆) 豆乳类 24 2.292225 8.348525 3.860590 3.040214 2.434584 0.434316
酸豆乳 豆乳类 134 113.507463 2.955224 1.611940 0.000000 1.491045 24.985075
素大肠 豆乳类 59 37.058824 10.647059 2.117647 0.588235 0.000000 85.117647
素火腿 豆乳类 43 23.459716 8.146919 5.630332 0.383886 11.085782 288.298578
稻米3(粳,特级) 豆乳类 27 1.970000 0.110000 0.110000 20.290000 1.670000 6.470000

681 rows × 8 columns

df['重量']
食物名
稻米            26
稻谷(早籼)        16
大麦(元麦)        29
大黄米(黍)        26
方便面           19
            ... 
青豆(青大豆)       24
酸豆乳          134
素大肠           59
素火腿           43
稻米3(粳,特级)     27
Name: 重量, Length: 681, dtype: int64

获取两列

df[['重量','钠']]
重量
食物名
稻米 26 0.768167
稻谷(早籼) 16 0.401114
大麦(元麦) 29 0.469055
大黄米(黍) 26 0.438395
方便面 19 218.135593
... ... ...
青豆(青大豆) 24 2.434584
酸豆乳 134 1.491045
素大肠 59 0.000000
素火腿 43 11.085782
稻米3(粳,特级) 27 1.670000

681 rows × 2 columns

#不能通过索引值来获取某一行的或者指定位置的元素
# df['稻米']    df['稻米']['重量']  这样子写都是会报错的

#索引只能获取某一列,然后通过这一列再去找
weight=df['重量']
weight['稻米']
26

loc 用label来定位

iloc 用position来定位

df.loc['稻米']['重量']
26
df.loc['稻米':'方便面']
分类 重量 蛋白质 脂肪 膳食纤维 碳水化物
食物名
稻米 谷物类 26 2.192723 0.192691 0.132008 19.879120 0.768167 1.976958
稻谷(早籼) 谷物类 16 2.481894 0.551532 0.350975 18.752089 0.401114 3.259053
大麦(元麦) 谷物类 29 2.990228 0.410423 2.902280 18.586319 0.469055 3.811075
大黄米(黍) 谷物类 26 3.507163 0.696275 0.902579 17.432665 0.438395 7.736390
方便面 谷物类 19 1.811441 4.023305 0.133475 11.612288 218.135593 4.766949
df.iloc[0]
分类           谷物类
重量            26
蛋白质      2.19272
脂肪      0.192691
膳食纤维    0.132008
碳水化物     19.8791
钠       0.768167
钙        1.97696
Name: 稻米, dtype: object
df.iloc[0:3]
分类 重量 蛋白质 脂肪 膳食纤维 碳水化物
食物名
稻米 谷物类 26 2.192723 0.192691 0.132008 19.879120 0.768167 1.976958
稻谷(早籼) 谷物类 16 2.481894 0.551532 0.350975 18.752089 0.401114 3.259053
大麦(元麦) 谷物类 29 2.990228 0.410423 2.902280 18.586319 0.469055 3.811075
##获取指定列
df.iloc[0:3,1:3]
重量 蛋白质
食物名
稻米 26 2.192723
稻谷(早籼) 16 2.481894
大麦(元麦) 29 2.990228

筛选

df[df['分类']=='肉类']
##中括号里面是个Bool类型的,然后再传回df中就可以了(即只会把True的显示出来)
分类 重量 蛋白质 脂肪 膳食纤维 碳水化物
食物名
肉类 30 14.207634 3.782082 7.724912 0.0 0.089103 279.045720
叉烧肉 肉类 32 15.870968 7.677419 5.451613 0.0 0.219355 264.129032
方腿 肉类 77 56.846154 12.461538 3.846154 0.0 0.115385 326.538462
宫爆肉丁(罐头) 肉类 27 11.919643 4.741071 7.392857 0.0 0.404464 126.401786
狗肉 肉类 62 58.965517 13.034483 3.568966 0.0 1.086207 36.775862
... ... ... ... ... ... ... ... ...
田鸡(青蛙) 肉类 36 76.838710 19.838710 1.161290 0.0 0.532258 11.419355
田鸡腿(青蛙腿) 肉类 40 93.075949 13.443038 1.594937 0.0 0.660759 245.164557
蝎子 肉类 51 24.610169 13.322034 2.389831 0.0 3.859322 58.830508
中国鲎 肉类 97 120.142857 14.714286 2.142857 0.0 3.285714 0.000000
炸鸡(肯德鸡) 肉类 23 15.935484 6.548387 5.580645 0.0 2.077419 243.548387

262 rows × 8 columns

df[df['分类']=='肉类']['重量']
56.36641221374046

基本统计指标

df.describe()
重量 蛋白质 脂肪 膳食纤维 碳水化物
count 681.000000 681.000000 681.000000 681.000000 681.000000 681.000000 681.000000
mean 122.756241 112.119549 7.082490 2.380822 5.157334 34.052483 557.301880
std 211.080287 223.202680 5.983232 8.329738 7.563437 561.686112 2684.146695
min 7.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 30.000000 5.518033 1.756098 0.297794 0.000000 0.123913 6.000000
50% 47.000000 36.000000 5.727273 1.000000 1.139241 0.916981 27.900000
75% 136.000000 105.300000 11.460000 2.855573 7.702328 3.323077 104.610390
max 3000.000000 2892.000000 45.000000 180.972973 57.600000 14142.913040 32286.666670

groupby

df.groupby('分类').sum()
重量 蛋白质 脂肪 膳食纤维 碳水化物
分类
水果类 7870 7749.405556 104.545800 43.734145 212.281453 142.063666 1145.775009
肉类 14768 13889.115836 3110.533468 915.063512 0.000000 384.592469 49096.447432
蔬菜类 49439 51871.136219 1150.082174 162.789894 1095.084777 14691.616430 324695.914233
谷物类 8380 378.092086 231.878966 401.588553 2141.576094 7733.783997 2057.292955
豆乳类 3140 2465.662844 226.135330 98.163964 63.201943 237.684029 2527.150658

协方差 相关系数

df.cov()
重量 蛋白质 脂肪 膳食纤维 碳水化物
重量 44554.887553 41182.411708 233.306873 323.478724 413.007569 13629.479642 8.990307e+04
蛋白质 41182.411708 49819.436385 289.770895 -81.337915 393.438141 -137.169258 6.135819e+04
脂肪 233.306873 289.770895 35.799061 0.114819 -14.506120 -37.135525 5.362664e+02
膳食纤维 323.478724 -81.337915 0.114819 69.384535 -4.586858 594.002972 -5.682174e+02
碳水化物 413.007569 393.438141 -14.506120 -4.586858 57.205577 20.115411 -1.969337e+02
13629.479642 -137.169258 -37.135525 594.002972 20.115411 315491.288159 2.764420e+05
89903.074886 61358.194926 536.266377 -568.217363 -196.933720 276441.965879 7.204643e+06
df.corr()
重量 蛋白质 脂肪 膳食纤维 碳水化物
重量 1.000000 0.874107 0.184733 0.183978 0.258697 0.114958 0.158679
蛋白质 0.874107 1.000000 0.216980 -0.043748 0.233055 -0.001094 0.102416
脂肪 0.184733 0.216980 1.000000 0.002304 -0.320550 -0.011050 0.033392
膳食纤维 0.183978 -0.043748 0.002304 1.000000 -0.072806 0.126959 -0.025414
碳水化物 0.258697 0.233055 -0.320550 -0.072806 1.000000 0.004735 -0.009701
0.114958 -0.001094 -0.011050 0.126959 0.004735 1.000000 0.183360
0.158679 0.102416 0.033392 -0.025414 -0.009701 0.183360 1.000000

统计一样的值出现的次数

df.value_counts('分类')
分类
肉类     262
蔬菜类    175
谷物类    134
水果类     77
豆乳类     33
dtype: int64

升序

df.value_counts('分类',ascending=True)
分类
豆乳类     33
水果类     77
谷物类    134
蔬菜类    175
肉类     262
dtype: int64

你可能感兴趣的:(机器学习,python,pandas,学习)