numpy,pandas基本 *** 作 (未完)

numpy,pandas基本 *** 作 (未完),第1张

numpy,pandas基本 *** 作 (未完) numpy基本 *** 作
import numpy as np
def test(n):
    l1=[i**2 for i in range(n)]
    l2=[i**3 for i in range(n)]
    l3=[]
    for i in range(n):
        l3.append(l1[i]+l2[i])
    return l3
print(test(10))

def test1(n):
    n1=np.arange(n)**2
    n2=np.arange(n)**3
    n3=n1+n2
    return n3
print(test1(10))

np.arange(10)

np.arange(2,20,3)

np.zeros(10)

np.zeros(10,dtype=int)

np.zeros(shape=(3,5)) #浮点数

np.zeros(shape=(3,5),dtype=int)

np.ones(10)
np.ones(shape=(3,5),dtype=int)

np.full(10,99) #指定数字

np.full((3,5),99)

#等差数列
np.linspace(0,20,10) #0到20之间生成10个数,之前差是一致的

#随机数
np.random.randint(0,10)

np.random.randint(0,10,size=(5,4))

np.random.seed(99) #固定生成的随机数,随机数种子,数字任意               
np.random.randint(0,10,5)

np.random.random() #0到1的浮点数

np.random.random((3,5))

A=np.ones(shape=(3,5))

A.ndim #维度

A.shape #形状

A.size #一共的元素值

a=np.arange(10)

X=a.reshape(2,5)
X=a.reshape(2,-1) 
X=a.reshape(-1,2)

X=np.arange(15).reshape(3,5)
print(X[0])
print(X[-1])
print(X[0,1])

a=np.arange(10)

print(a[0:5])
print(a[:5])
print(a[5:])
print(a[0:8:2])
print(a[::2])
print(a[::-1])

x=np.arange(15).reshape(3,5)
print(x[0:2,0:3])
print(x[:2,:3])

x[:2][:3] #是错的,不要使用

print(x[:2,::2])

print(x[::-1,::-1])

print(x.T) #转置

#矩阵的合并
x1=np.array([[22,126],
             [18,187]])
x2=np.array([[0],
             [1]])
# 0行合并,1列合并,默认为0
x=np.concatenate([x1,x2],axis=1)
print(x)

#聚合 *** 作
x=np.arange(15).reshape(3,5)
np.sum(x)
np.max(x)
np.mean(x)



pandas基本 *** 作
import pandas as pd
import numpy as np
pd.__version__
ser=pd.Series(['张三','李四','王五'])
print(ser)

ser=pd.Series(['张三','李四','王五'],index=list(range(1,4)))
print(ser)

print(ser[2])

ind=[1,3]
print(ser[ind])

print(ser.values)

ser2=pd.Series([18,19,17],index=range(1,4))
print(ser2)
print(ser2+1)

print(ser2[ser2%2==0]) #年龄位偶数的

data={"beijing":9240,"shanghai":8960,"guangzhou":7400}
ser3=pd.Series(data) #键要保证唯一,字典初始化
print(ser3)

print(ser3['beijing'])
print("beijing" in ser3)

print(ser3.to_dict())
print(ser3.to_list())
print(ser3.to_json())
print(ser3.to_frame()) #表 frame

#Dataframe

data=np.arange(100,109).reshape(3,-1)
print(data)

df=pd.Dataframe(data)
print(df)

data={
      "name":["Jack","mary","lily"],
      "age":[19,19,18],
      "height":[1.68,1.37,1.62]   
      }
df=pd.Dataframe(data)
print(df)

print(df.columns)

df=pd.Dataframe(data,
                columns=["username","age","height","email"])
df=pd.Dataframe(data,
                columns=["name","age","height","email"],
                index=range(1,4))
df.rename(columns={'name':'username'},inplace=True) #修改列名
print(df)

data={
      "name":["张三","李四","王五","赵六"],
      "age":[19,19,18,20],
      "height":[1.68,1.37,1.62,189]   
      }
df=pd.Dataframe(data,
                columns=["name","age","height"])

print(df['name'])
print(df[['name']]) #升级为dataframe表

print(df[['name','age']])

names=df["name"] # 修改影响主表
#names[0]="Jack"


names=df.name.copy() #不会影响主表
print(names)

#切片形式
print(df.columns)
print(df.columns[1:3])
print(df[df.columns[1:3]])

import datetime
#添加一列
df['year']=datetime.datetime.now().year-df.age
print(df)

df.drop('year',axis=1)
print(df.drop(['year','height'],axis=1))

print(df.drop(df.columns[1::2],axis=1))

#取行
print(df.loc[1])
print(df.loc[[1]])
print(df.loc[[1,3]])

#不知道索引值,求最后两个数据的name,age
df.index
df.index[-2:]
print(df.loc[df.index[-2:]]) 

print(df.loc[df.index[-2:],['name','age']])

#在最后一行插入数据
print(df.shape) 
df.loc[df.shape[0]]={'name':'五七','age':21,'height':1.66,'year':0}
print(df)

df2=df.drop(2)
print(df2)
df2.index=range(df2.shape[0]) #表示所有的行数shape[0]
print(df2) #索引重置

#取物理索引
df2.iloc[2] #不会因为定义的索引改变而改变,底层物理顺序

df2.loc[[2],'height']=1.89
print(df2)

df2.index=list("ABCD")
print(df2)

print(df2.iloc[1:3])

print(df.iat[1,1])

df2.iat[1,1]=26
df2.iat[1,2]=88
print(df2)

#使用比较运算筛选数据


df2['height']>=1.68
#取身高大于1.65的数据行
print(df2[df2['height']>=1.68])

print(df2[(df2['height']>=1.68) & (df2['age']<=20)])

print(df)

#查询方法
print(df.query(' height >=1.65 and age<=20  '))
print(df.query("height >=1.65 and age<=20 or name=='五七' "))

age=20
df.query('age<@age') #指定的age

print(df['age'].isin([18,19]))
print(df[df['age'].isin([18,19])])  

df.T  #转置

# pandas导入数据
t1=pd.read_table('./11/01.txt')
print(t1)

t2=pd.read_table('./11/02.txt')
print(t2) #列分割通过tab键

t3=pd.read_table('./11/03.txt',
                 sep=':',
                 #以冒号位分隔符
                 header=None,
                 #将第一行作为数据处理
                 names=['name','pwd','uid','gid','local','home','shell']
                 #为每列数据命名
                 )
print(t3) 

#csv格式 (兼容性强)
t4=pd.read_csv('./11/04.csv')
print(t4)

#excel 要pip install xlrd
t5=pd.read_excel('./11/05.xlsx')
print(t5)

# html格式 安装xlml
t6=pd.read_html('./11/06.html',
                header=0
                #把头设置为第0行
                )
print(t6[0]) #第一张表
print(t6[1]) #第二章表

t6=pd.read_html('./11/06.html',
                header=0,
                #把头设置为第0行
                attrs= {'class':'mydata'}
                #选定的表
                )
print(t6)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5594193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存