Pandas

Pandas

import pandas as pd 导入模块
import numpy as np

#数据类型:series一维 dataframe 二维

series一维

data = pd.Series([1,2,3,4,5,6,7,8,9,10])
print(data)
0     1
1     2
2     3
3     4
4     5
5     6
6     7
7     8
8     9
9    10
dtype: int64

data.head() #head 默认取前5个 
0    1
1    2
2    3
3    4
4    5
dtype: int64

data.tail(2)  #tail默认取后5个  默认倒着获取,写几就从后往前几个
8     9
9    10
dtype: int64

print(data[2])   #切片
3       按下标切片 2的下标是3

print(data[2:7])  # 切片2到7 下标的数据是34567
2    3
3    4
4    5
5    6
6    7
dtype: int64

dataframe 二维

df = pd.DataFrame([[1,2,3,4,5],[6,7,8,9,10],[60,70,80,90,100],[61,71,81,91,110]],columns=['a','b','c','d','e'],index=['A','B','C','D']) 
print(df)   ##columns  :给列起别名   index:给索引起别名
    	a   b   c   d    e
    A   1   2   3   4    5
    B   6   7   8   9   10
    C  60  70  80  90  100
    D  61  71  81  91  110
    
df['b']  #按列标签取值  只取一列
A     2
B     7
C    70
D    71
Name: b, dtype: int64

print(df.loc['C'])  #按照行标签名取值  只取一行
a     60
b     70
c     80
d     90
e    100
Name: C, dtype: int64

print(df.iloc[1])  #按照行索引取值  只取一行
a     6
b     7
c     8
d     9
e    10
Name: B, dtype: int64

print(np.sum(df))   #求每列的和
a    128
b    150
c    172
d    194
e    225
dtype: int64

print(np.sum(df,axis=1)) # 求每行的和  axis=1:按行。axis=0:按列(默认)
A     15
B     40
C    400
D    414
dtype: int64

print(df.loc['B':'D','c':'e'])  #行和列一起切   第一个是行,第二个是列
     	 c   d    e
     B   8   9   10
     C  80  90  100
     D  81  91  110

print(df.iloc[-3:,-3:])  #索引行列一起切  第一个是行,第二个是列
    	 c   d    e
     B   8   9   10
     C  80  90  100
     D  81  91  110


df[df['a']>59]  #切出大于59的所有行
C60 70 8 090 100
D61 71 81 91 110

df.sort_values(by='a',ascending=False)    #按value  排序  ascending=True:升序 默认  False:降序  按照a的值大小排序

处理缺失值

np.random.randint(90,100,size=3)  #生成区间值  90到100    之间随机生成三整型个值  [91 94 97]

np.random.randn(10)  #正太分布数据   #随机分配10个数据

df = pd.DataFrame([np.random.randn(3),[1,2,np.nan],[np.nan,4,8]])
第一行值是正太分布数据 随机分配3个数据 ;第二行是1,2,空;第三行是 空,4,8;
              0           1         2
          0 -0.861719 -0.655275 -1.056403
          1  1.000000  2.000000       NaN2       
          NaN  4.000000  8.000000

#填充空值
mean=np.mean(df.iloc[:,0])   #平均值  获取0下标的平均值
print(mean)  =  0.5647720881081901
df.iloc[:,0].fillna(mean)    #填充
0   -0.497073
1    1.000000
2    0.251463
Name: 0, dtype: float64

df.describe()  #查看数据
df.info()  #查看数据的结构
          
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值