pandas入门基础补充

pandas入门基础补充

创建表格
import pandas as pd
df = pd.DataFrame('ID':[1,2,3],'Name':['Tim','Victor','Nick'])
# 设置索引
df = df.set_index('ID',inplace=True)
df.to_excel('c:/temp.xlsx')
print('Done!')
读取表格
import pandas as pd
pe = pd.read_excel('目录文件')
# 输出多少行多少列
print(pe.shape)
# 输出列名
print(pe.columns)
# 打印前几行数据 默认前五行
print(pe.head(3))
# 打印后几行数据
print(pe.tail(3))
# 从第2行还是读取数据 如果是空的,则默认第二行数据,不需要加header
pe = pd.read_excel('目录文件', header=1)
# 指定索引读取
pe = pd.read_excel('目录文件',index_col='ID')
创建行、列单元格
import pandas as pd
# 创建列
s1 = pd.Series()
# 索引
s1.index = 0
# 名字
s1.name = 'ID'
# 跟字典的数据结构很像
# 从字典转表格
d = {'x':100,'y':200}
s1 = pd.servies(d)
# 加入列
s1 = pd.Series([1,2,3],index=[1,2,3],name='A')
s1 = pd.Series([10,20,30],index=[1,2,3],name='B')
s1 = pd.Series([100,200,300],index=[1,2,3],name='C')
df = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
# 添加行
df = pd.DataFrame([s1,s2,s3])
自动填充功能
import pandas as pd
from datatime import date,timedelta
# 当表格出现没有定格的情况,我们可以先将表格移动到指定位置,例如
df = pd.read_excel('目录文件',skiprows=3,usecols="C,D,E,F",index_col= None)
# 或者
df = pd.read_excel('目录文件',skiprows=3,usecols="C:F",index_col= None)
# 填充ID空间 利用index进行循环,即表格旁边的数字 空表格默认为浮点型
for i in df.index:
    df['ID'].at[i]=i+1
# 更改为整数(或者说看起来像整数类型)
df = pd.read_excel('目录文件',skiprows=3,usecols="C,D,E,F",index_col= None,dtype={'ID':str})
for i in df.index:
    df['ID'].at[i]=i+1
    # 交替使用
    df['isStudent'].at[i]='Yes'if i % 2 == 0 else 'No'
	# 填充日期
	# 需要添加date包,已添加在前列
	start = data(2021,7,4)
    books['InStore'].at[i]= start + timedelta(days=i)
    books['InStore'].at[i]= data(start.year + i,start.month,start.day)
    pass
函数填充 计算列
import pandas as pd
books = pd.read_excel('目录文件',index_col='ID')
# 列*列
books['Price'] = books['ListPrice']*books['Discount']
# 列*数
books['Price'] = books['ListPrice']*0.8
# 循环迭代方式
for i in books.index:
    books['Price'] = books['ListPrice'].at[i]*books['Discount'].at[i]
    pass
# 只从某些列中进行
for i in range(5,10):
    books['Price'] = books['ListPrice'].at[i]*books['Discount'].at[i]
    pass
# 列集体加2
books['Price'] = books['ListPrice'] + 2
# 或者
books['Price'] = books['ListPrice'].apply[lambda x:x + 2]

排序

import pandas as pd
df = pd.read_excel('目录文件',index_col='ID')
# 单个参数排序 默认升序
df.sort_values(by='Worthy',inplace=True)
# 单个参数排序 降序
df.sort_values(by='Worthy',inplace=True,ascending=False)
# 先按价值排序,再按价格排序 默认升序
df.sort_values(by=['Worthy','Price'],inplace=True)
# 价值升序 价格降序
df.sort_values(by=['Worthy','Price'],inplace=True,asceding=[True,False])
过滤与数据筛选
import pandas as pd
# 筛选18岁到22岁
def __age_18_to_22__(a):
    return 18<=a<22
# 筛选分数在80分以上的的
def __level_A__(s):
    return 80<=s<=100
df = pd.read_excel('目录文件',index_col='ID')
# 使用函数
df = df.loc[students['age'].apply(__age_18_to_22__)].loc[students['score'].apply(__level_A__)]
# 或者
df = df.loc[students.age.apply(__age_18_to_22__)].loc[students.score.apply(__level_A__)]
# 或者 换行 空格+\
df = df.loc[students.age.apply(lambda a:18 <=a < 22)]. \
loc[students.score.apply(lambda s:80 <= s <= 100)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值