Pandas2

import pandas as pd 
import numpy as np

数据计算

sum mean max min median mode var std quantile

df=pd.DataFrame(np.random.randint(0,100,size=(5,3)),
                columns=['数学','语文','英语'])
print(df)
   数学  语文  英语
0  80   9   6
1  90  51  86
2  56  37  68
3  45  38  11
4  53   4  99
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   数学      5 non-null      int64
 1   语文      5 non-null      int64
 2   英语      5 non-null      int64
dtypes: int64(3)
memory usage: 248.0 bytes
df.describe()
数学语文英语
count5.0000005.0000005.000000
mean64.80000027.80000054.000000
std19.20156220.29039243.005814
min45.0000004.0000006.000000
25%53.0000009.00000011.000000
50%56.00000037.00000068.000000
75%80.00000038.00000086.000000
max90.00000051.00000099.000000
df.sum()
780
df.sum(axis=1)
0    208
1    148
2    167
3    135
4    122
dtype: int64
df.mean()
数学    48.6
语文    63.0
英语    44.4
dtype: float64
df.mean(axis=1)
0    69.333333
1    49.333333
2    55.666667
3    45.000000
4    40.666667
dtype: float64
df.max()
数学    97
语文    90
英语    71
dtype: int64
df.max(axis=1)
0    72
1    90
2    64
3    85
4    97
dtype: int64
df.min(axis=0)
数学    10
语文    11
英语    14
dtype: int64
df.min(axis=1)
0    65
1    10
2    49
3    10
4    11
dtype: int64
df.median(axis=0)
数学    54.0
语文    65.0
英语    48.0
dtype: float64
df.median(axis=1)
0    71.0
1    48.0
2    54.0
3    40.0
4    14.0
dtype: float64
df.mode(axis=0)
数学语文英语
010.01114
1NaN6440
2NaN6548
3NaN8549
4NaN9071
df.var()
数学    1474.8
语文     980.5
英语     421.3
dtype: float64
df.var(axis=1)
0      14.333333
1    1601.333333
2      58.333333
3    1425.000000
4    2382.333333
dtype: float64
df.std(axis=0)
数学    38.403125
语文    31.312937
英语    20.525594
dtype: float64
df.std(axis=1)
0     3.785939
1    40.016663
2     7.637626
3    37.749172
4    48.809152
dtype: float64
df.quantile(0.25)
数学    10.0
语文    64.0
英语    40.0
Name: 0.25, dtype: float64
df.quantile(0.25,axis=1)
0    68.0
1    29.0
2    51.5
3    25.0
4    12.5
Name: 0.25, dtype: float64

数据格式化

round

df=pd.DataFrame(np.random.rand(5,3)*100)
print(df)
           0          1          2
0  90.587048   9.478269  25.541187
1  59.680188  74.363507  56.073898
2  78.204519  46.262737   4.725879
3  25.304191  38.107125  48.068184
4   5.143849   9.547211  77.496162
print(df.round())
      0     1     2
0  91.0   9.0  26.0
1  60.0  74.0  56.0
2  78.0  46.0   5.0
3  25.0  38.0  48.0
4   5.0  10.0  77.0
print(df.round(decimals=3))
        0       1       2
0  90.587   9.478  25.541
1  59.680  74.364  56.074
2  78.205  46.263   4.726
3  25.304  38.107  48.068
4   5.144   9.547  77.496
print(df.round(decimals={0:3,1:2,2:1}))
        0      1     2
0  90.587   9.48  25.5
1  59.680  74.36  56.1
2  78.205  46.26   4.7
3  25.304  38.11  48.1
4   5.144   9.55  77.5

数据分组统计

groupby

df=pd.read_csv('../data/JD.csv',encoding='gbk')
df.head()
商品名称一级分类二级分类7天点击量定价订单预定
0ASP.NET项目开发实战入门(全彩版)编程语言与程序设计ASP.NET3569.81
1PHP项目开发实战入门(全彩版)编程语言与程序设计PHP4969.80
2Java精彩编程200例(全彩版)编程语言与程序设计Java5179.82
3零基础学PHP(全彩版)编程语言与程序设计PHP6479.81
4JSP项目开发实战入门(全彩版)编程语言与程序设计JSP/JavaWeb2669.80
set(df['一级分类'])
{'数据库', '移动开发', '编程语言与程序设计', '网页制作/Web技术'}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9pEsbLAc-1666532083701)(attachment:image.png)]

df.groupby(by='一级分类').sum()
7天点击量定价订单预定
一级分类
数据库186129.615
移动开发261358.47
编程语言与程序设计42801882.6192
网页制作/Web技术345209.415
df.groupby(by='一级分类').std()
7天点击量定价订单预定
一级分类
数据库49.49747521.2132037.778175
移动开发25.32949524.1694021.707825
编程语言与程序设计246.76703817.21424916.296172
网页制作/Web技术66.77574417.3205084.358899
df.groupby(by=['一级分类','7天点击量']).mean()
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-5-6aa049e5c147> in <module>
----> 1 df.groupby(by=['一级分类','7天点击量']).mean()


NameError: name 'df' is not defined
df.groupby(by=['一级分类','二级分类']).sum()
7天点击量定价订单预定
一级分类二级分类
数据库Oracle5879.82
SQL12849.813
移动开发Android261358.47
编程语言与程序设计ASP.NET87149.62
C#314239.412
C++/C语言724408.828
JSP/JavaWeb157139.61
Java408328.416
PHP113149.61
Python2449387.4132
Visual Basic2879.80
网页制作/Web技术HTML18879.88
JavaScript10079.87
WEB前端5749.80

数据转换

df=pd.read_excel('../data/mrbooks.xls')
df.head()
买家会员名买家实际支付金额宝贝总数量宝贝标题订单付款时间收货地址
0mr00001748.501PHP程序员开发资源库2018-01-01 09:26:18重庆 重庆市 南岸区
1mr0000390.001个人版编程词典加点2018-01-01 10:06:07江苏省 苏州市 吴江区 吴江经济技术开发区亨通路
2mr0000410.001邮费2018-01-01 10:06:48江苏省 苏州市 园区 苏州市工业园区唯亭镇阳澄湖大道维纳阳光花园
3mr00002269.004零基础学Java全彩版 ,Java精彩编程200例,Java项目开发实战入门全彩版,明日科技...2018-01-01 10:18:12重庆 重庆市 南岸区 长生桥镇茶园新区长电路11112号
4mr0000550.861零基础学PHP全彩版2018-01-01 16:08:22安徽省 滁州市 明光市 三界镇中心街10001号
result=df['收货地址'].str.split(' ',expand=True)
print(result.head())
     0    1    2                      3     4
0   重庆  重庆市  南岸区                         None
1  江苏省  苏州市  吴江区           吴江经济技术开发区亨通路  None
2  江苏省  苏州市   园区  苏州市工业园区唯亭镇阳澄湖大道维纳阳光花园  None
3   重庆  重庆市  南岸区      长生桥镇茶园新区长电路11112号  None
4  安徽省  滁州市  明光市           三界镇中心街10001号  None
df['省']=result[0]
df['市']=result[1]
df['区']=result[2]
df.head()
买家会员名买家实际支付金额宝贝总数量宝贝标题订单付款时间收货地址
0mr00001748.501PHP程序员开发资源库2018-01-01 09:26:18重庆 重庆市 南岸区重庆重庆市南岸区
1mr0000390.001个人版编程词典加点2018-01-01 10:06:07江苏省 苏州市 吴江区 吴江经济技术开发区亨通路江苏省苏州市吴江区
2mr0000410.001邮费2018-01-01 10:06:48江苏省 苏州市 园区 苏州市工业园区唯亭镇阳澄湖大道维纳阳光花园江苏省苏州市园区
3mr00002269.004零基础学Java全彩版 ,Java精彩编程200例,Java项目开发实战入门全彩版,明日科技...2018-01-01 10:18:12重庆 重庆市 南岸区 长生桥镇茶园新区长电路11112号重庆重庆市南岸区
4mr0000550.861零基础学PHP全彩版2018-01-01 16:08:22安徽省 滁州市 明光市 三界镇中心街10001号安徽省滁州市明光市

数据合并

merge concat

https://zhuanlan.zhihu.com/p/70438557

df1=pd.DataFrame(data=np.random.randint(0,100,size=[3,3]),               
                columns=['语文','数学','英语'])
df1['people']=['p1','p2','p3']
df2=pd.DataFrame(data=np.random.randint(0,100,size=[3,1]),            
                columns=['体育'])
df2['people']=['p1','p2','p4']
print(df1)
print(df2)
   语文  数学  英语 people
0  33  36  52     p1
1  61  30  40     p2
2  82  41  77     p3
   体育 people
0  90     p1
1  17     p2
2  78     p4
df_merge=pd.merge(df1,df2)
print(df_merge)
   语文  数学  英语 people  体育
0  33  36  52     p1  90
1  61  30  40     p2  17
df_merge=pd.merge(df1,df2,how='outer')
print(df_merge)
     语文    数学    英语 people    体育
0  33.0  36.0  52.0     p1  90.0
1  61.0  30.0  40.0     p2  17.0
2  82.0  41.0  77.0     p3   NaN
3   NaN   NaN   NaN     p4  78.0
df_merge=pd.merge(df1,df2,how='left')
print(df_merge)
   语文  数学  英语 people    体育
0  33  36  52     p1  90.0
1  61  30  40     p2  17.0
2  82  41  77     p3   NaN
df_merge=pd.merge(df1,df2,how='right')
print(df_merge)
     语文    数学    英语 people  体育
0  33.0  36.0  52.0     p1  90
1  61.0  30.0  40.0     p2  17
2   NaN   NaN   NaN     p4  78
df1=pd.DataFrame(data=np.random.randint(0,100,size=[3,3]),               
                columns=['语文','数学','英语'])
df1['people1']=['p1','p2','p3']
df2=pd.DataFrame(data=np.random.randint(0,100,size=[3,1]),            
                columns=['体育'])
df2['people2']=['p1','p2','p4']
print(df1)
print(df2)
   语文  数学  英语 people1
0  76   8  45      p1
1  20  24  25      p2
2  37  86  73      p3
   体育 people2
0  93      p1
1   7      p2
2  68      p4
df_merge=pd.merge(df1,df2,left_on='people1',right_on='people2')
print(df_merge)
   语文  数学  英语 people1  体育 people2
0  76   8  45      p1  93      p1
1  20  24  25      p2   7      p2
df1=pd.DataFrame(data=np.random.randint(0,100,size=[3,3]),
                 index=['p1','p2','p3'],
                columns=['语文','数学','英语'])

df2=pd.DataFrame(data=np.random.randint(0,100,size=[3,1]),
                 index=['p1','p2','p4'],
                columns=['体育'])

print(df1)
print(df2)
    语文  数学  英语
p1  14  31  41
p2  71  88  60
p3  10  12  39
    体育
p1  80
p2  23
p4  82
df_merge=pd.merge(df1,df2,left_index=True,right_index=True,how='outer')
print(df_merge)
      语文    数学    英语    体育
p1  14.0  31.0  41.0  80.0
p2  71.0  88.0  60.0  23.0
p3  10.0  12.0  39.0   NaN
p4   NaN   NaN   NaN  82.0

数据导出

df=pd.DataFrame(np.random.randint(0,100,size=(5,3)),
                columns=['数学','语文','英语'])
print(df)
   数学  语文  英语
0  65  58  71
1  19  59  40
2  47  32  64
3  67  95  14
4  77  17  12
df.to_excel('data.xls',sheet_name='excel',index=False)
df.to_csv('data.csv',index=False,encoding='gbk')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值