2021.11.3 python学习记录

一、import Pandas as pd
from matiplotlib import pyplot as plt
file_path=r’c:\User\WLQ\Desktop\IMDB-movie-Data.csv’
df=pd.read_csv(file_path)
print(df[Genere"] 分类统计
思考:对于这一组电影数据,如果我们希望统计电影分类(genre)的情况,应该如何处理数据?
思路:重新构造一个全为0的数组,列名为分类,如果某一跳数据中分类出现过,就让0变为1.
二、数据合并之join
join:默认情况下他是把行列索引相同的数据合并到一起。
import pandas as pd
import numpy as np
t1=pd.DataFrame(np.ones((2,4)),index=[“A”,“B”],columns=list(“abcd”))
print(t1)
t2=pd.DataFrame(np.zeros((3,3)),index=[“A”,“B”,“C”],columus=list(“XYZ”))
print(t2)
t3=t1.join(t2)
print(t3)
t1输出:
a b c d
A 1.0 1.0 1.0 1.0
B 1.0 1.0 1.0 1.0

t2输出:

               X             Y                 Z
     A     0.0          0.0              0.0
     B     0.0          0.0              0.0
     C     0.0          0.0              0.0    

t3输出:
a b c d x y z
A 1.0 1.0 1.0 1.0 0.0 0.0 0.0
B 1.0 1.0 1.0 1.0 0.0 0.0 0.0

t4=t2.join(t1)
print(t4)

          X                Y                Z                   a                 b                 c                   d

A 0.0 0.0 0.0 1.0 1.0 1.0 1.0
B 0.0 0.0 0.0 1.0 1.0 1.0 1.0
C 0.0 0.0 0.0 NaN NaN NaN NaN
三、数据合并之merge
merge:按照指定的列把数据按照一定的方式合并到一起
t5=pd.DataFrame(np.zeros((3,3)),columns=list("fax“))
print(t5)

                  f                     a                      x
    0         0.0                  0.0                  0.0
    1         0.0                  0.0                  0.0
    2         0.0                  0.0                  0.0

t6=t1.merge(t5,on=“a”)
print(t6)
Empty DataFrame
columns:[a,b,c,d,f,x]
index:[]

t7=pd.DataFrame(np.arange(9).reshape(3,3),columns=list(“fax”))
print(t7)
输出:
f a x
0 0 1 2
1 3 4 5
2 6 7 8

t8=t1.merge(t7,on=“a”)
print(t8)

               a                   b                      c                     d                     f                    x
  0         1.0               1.0                    1.0                  1.0                 1.0                0.2
  1         1.0               1.0                    1.0                  1.0                 1.0                0.2

#默认的合并方式 inner,并集
merge outer 交集,NaN补全
merge left 左边为准 ,NaN补全
merge right 右边为准,NaN补全
数据合并之merge
t1:
M N O P
A 1.0 1.0 a 1.0
B 1.0 1.0 b 1.0
C 1.0 1.0 c 1.0

t2:
V W X Y Z
A 0.0 0.0 c 0.0 0.0
B 0.0 0.0 d 0.0 0.0

t1.merge(t2.left_on=“O”,right=“X”)
M N O P V W X Y Z
0 1.0 1.0 c 1.0 0.0 0.0 c 0.0 0.0

默认的合并方式inner交集
t1.merge(t2,left_on=“O”,right_on=“X”,how=“outer”)
M N O P V W X Y Z
0 1.0 1.0 a 1.0 NaN NaN NaN NaN NaN
1 1.0 1.0 b 1.0 NaN NaN NaN NaN NaN
2 1.0 1.0 c 1.0 0.0 0.0 c 0.0 0.0
3 NaN NaN NaN NaN 0.0 0.0 d 0.0 0.0
merge left,左边为准,NaN补全

t1.merge(t2,left_on=“O”,right_on=“X”,how=“right”)
M N O P V W X Y Z
0 1.0 1.0 c 1.0 0.0 0.0 c 0.0 0.0
1 NaN NaN NaN NaN 0.0 0.0 d 0.0 0.0

四、分组和聚合
import pandas as pd
import numpy as np
file_path=r’c:\Users\WLQ\Desktop\文件名
df=pd.read_csv(file_path)
print(df.head(1))
print(df.info(1))
grouped=df.groupby(by=“Country”)
print(grouped)

#可以进行遍历(每个国家的数据都遍历一遍)
for i,j in grouped:
print(i)
print("-"*100)
print(j,type(j))
print("@"*100)
如果只选一个国家
df[df[“Counrty”]=“US”]
#调用聚合方法(统计个数)
print(grouped.count())
print(grouped[Brand"].count())
分组和聚合
count 分组中非Na值得数量
sum 非Na值得和
mean 非Na值得算数中位数
std.var 无偏(分母为n-1)标准差和方差
min.max 非Na值得最小值和最大值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值