1. Series数据
创建series数据
import pandas as pd
t=pd.Series([1,2,3,4,123,34])
print(t)
# 索引
t2=pd.Series([12,3,434,12,123],index=list('abcde'))
print(t2)
# 通过字典来创建
t3=pd.Series({'name':'xiaoming','age':18})
print(t3)
print(t3['name'])
# 去连续的多行
# 前两行
print(t2[:2])
print(t2[1:])
# 取不连续的多行
print(t[[1,2]])
print(t3[['name','age']])
print(t3.values)
切片:直接传入start end或者步长即可 索引:一个的时候直接传入序号或者index,多个的时候传入序号或者index的列表
2.DataFrame
创建dataframe
import numpy as np
import pandas as pd
t=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('wxyz'))
print(t)
# 有 columns行索引 axis=0和 index列索引axis=1
t2=pd.DataFrame({"name":["xiaoming", "xiaogang"], "age": [20, 32], "tel": [10086, 10010]})
print(t2)
DataFrame的属性
detail= pd.read_sql_table('meal_order_detail1',con = engine)
print(detail.index) #订单详情表的索引
print(detail.values) #订单详情表的所有值
print(detail.columns) #订单详情表的列名
print(detail.dtypes) #订单详情表的数据类型'\n',
print(detail.size) ## 查看元素个数
print(detail.ndim) ## 查看DataFrame的维度数
print(detail.shape) ## 查看DataFrame的形状
布尔索引,条件索引
print(detil.T.shape) ##订单详情表转置
排序
import pandas as pd
df=pd.read_csv("./dogNames2.csv")
print(df.head())
print(df.info())
#dataFrame中排序的方法
df=df.sort_values(by="Count_AnimalName",ascending=False)
print(df.head(10))
布尔索引,条件索引
import pandas as pd
df=pd.read_csv("./dogNames2.csv")
#dataFrame中排序的方法
df=df.sort_values(by="Count_AnimalName",ascending=False)
#次数超过800的狗的名字
a=df[df["Count_AnimalName"]>800]
#使用次数超过700并且名字的字符串的长度大于4的狗
b=df[(df["Row_Labels"].str.len()>4)&(df["Count_AnimalName"]>700)]
取多行多列
loc方法
# loc方法
t1=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('wxyz'))
print(t1)
print(t1.loc['a', 'w'])
print(type(t1.loc['a', 'w']))
print(t1.loc['a'])
print(t1.loc['a', :])
print(t1.loc[:,'w'])
print('*'*100)
print(t1.loc[['a','c'],:])
print('*'*100)
print(t1.loc[:,['w','y']])
print('*'*100)
print(t1.loc[['a','c'],['w','y']])
print('*'*100)
print(t1.loc['a':'c',['w','y']])
# c已经选中
iloc 方法
# iloc方法
t1=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('wxyz'))
print('*'*100)
print(t1.iloc[1,:])
# 第二行
# 数字为索引
print('*'*100)
print(t1.iloc[:,3])
# 第三列
print('*'*100)
print(t1.iloc[[0,2],[2,1]])
print('*'*100)
print(t1.iloc[1:,:3])
# 也可以赋值
# t1.iloc[:,3]=100
print(t1)
注: 两者区别在于loc是用索引取值,iloc是用数字取值
【其他】字符串常用方法,切片
修改数据
#修改
##将order_id为458的,变换为45800
detail.loc[detail['order_id']=='458','order_id'] = '45800'
#增加
detail['payment'] = detail['counts']*detail['amounts'] #增加非定值
detail['pay_way'] = '现金支付' #增加定值
#删除
detail.drop(labels = 'pay_way',axis = 1,inplace = True) #删除列
detail.drop(labels = range(1,11),axis = 0,inplace = True) #删除行