.index.name=''
命名索引
.index=list('abcd')
date=pd.date_range('',periods=n)
时间序列
df=pd.DataFrame(np.random.randn(),index=,columns=)
df=pd.DateFrame({目录:要输入的数据})
key级2键值可以为pd.Time stamp,pd.Series,np.array
df.head()/tail()
查看前/后几行数据(默认值为5)
df.index/columns/values
下标/列标/数值查看
df=pd.read_excal
(r’路径名+读入的文件名’)(r是为了反斜杠不用转义)
df.iloc[]=df.index_col()
dit={}
s=pd.Series(dit)
s.name=
df=df.append(s)
添加一行
df=df.drop([])
删除一行
df=df.columns
df['列名'][行数]
添加列
df['序号']=range(1,len(df)+1)
df=df.drop
(‘列名’)
df.loc[[index],[colunm]]
df[(df.index==)|(df.)&(df.)][需要展示的行数]
|是或的意思
df[df[index].isnull]
df[index].fillna(,inplace=true)
括号内容为保存这个删除
df.to_excel()
df[]=df[].astype('')
df[df.columns==''][columns]
.values
错误案例[‘2008\u200e’]其中u200e是格式控制字符,虽然表现为正常,但会报错
df.loc[,]=
赋值操作
df.sort_values(by=需要升序的列)/,ascending=False#降序排列)
df.describe()对数值型数据进行描述性统计
df[].median()
中位数
.mean()平均值
.var()方差
.std()标准差
.corr()相关性
.unique()唯一值
df[].values_counts()
计数(默认从大到小)
df[列名].replace([原值],[替值]),inplace=True)
pd.set_option('max_columns/rows',100)
展示最多列数/行数
pd.option.display.max_rows
上一行方法报错用
pd.pivot_table(dfindex=[],values=[],aggfunc=np.sum)
去掉values显示全部,sum加和
pd.pivot_table(,fill_value=)
对非数值设值
.margins=True对所有求总和
aggfunc={需处理的行:np.sum/mean}
键值处输入需要操作的函数
table.sort_values()
排序
!!!!!tab偷懒ohhhhhhh
s=pd.Series(np.arange(1,10)index=[a,a,a,b,b,c,c][1,2,3,1,2,3,1,2,3])
效果
s.unstack()
将一维转二维#会产生缺失值
.stack()
二维转竖直型数组
.swaplevel()
交换列。
set_index()
把列变成索引
reset_index()
把索引变成列
层次化后,可用.loc()
调用索引
多层索引可以简化筛选环节
每个索引是一个元组
df=df.reset_index()
取消层次索引
.T行列交换
只会对数值变量分组运算,可以将不希望参与运算的数据设置为str等其他形式
df[]=df[].astype('')
group=df.groupby()
可以单独创建一个group,也可以直接df.groupby().
来进行计算
分组以后克用.mean()等计算
df[x].groupby(df[y]).mean()
求y中x的平均值
可以传入多个分组变量
df.groupby(df[],df[]).fuc()
pd.cut(x,bins,right=True,labels=None,retbins=False,include_lowest=False)
x:需要离散化的数组,一维数组,二维数组。
bins:分组的依据
bins若为数字,则是把x这个数据分成多少个等间距的区间
若为序列,则是把x划分在对应的序列区间中,如果数据不在序列当中会产生缺失值(NAN)
right=True,包含右端点,include_lowest=False,不包含左端点
#在统计学中,对于连续数据分组的处理是左闭右开的
labels=自己定义的区间(例如A,B,C,D,E,F)
retbins返回X中对应bins的列表
precision精度的设置
例子:
df[“污染等级”]=pd.cut(df['污染程度'],[0,3,5,7,9,10],labels=["A","B",'C','D','E']
bins=np.percentile(df[]#分为对象,[0,20,40,80]#分位值)
np.percentile or pd.quantile#百分位函数#
df[“热门程度”]=pd.cut(df['投票人数'],bins,labels=["A","B",'C','D','E']
区间化处理后仍然也可以按条件索取
df[df[]==""&df[]==""]
可将所需数据从原数据中提取出,再合并
pd.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True,suffixes=('_x','_y'),copy=True,indicator=False)
left:对象
right:另一个对象
#有相同的列:on:要加入的列(名称)。必须在左、右综合对象中都有。如果不能通过 left_index 和 right_index 是假,将推断DataFrames
中的列的交叉点为连接键
#没相同的列:left_on:从左边的综合使用作为键列。可以是列名或数组的长
度等于长度综合
right_on:从右边的综合,以用作键列。可以是列名或数组的长度
left_index:如果为 True,则使用索引(行标签)从左综合作为其联接
键。在与多重(层次)的综合,级别数必须匹配联接键从右综合的数目
right_index:相同用法作为右综合 left_index
how:即数据保留/拼接的方式,‘左’,‘右’,‘外在’、‘内部’。默认为内部
(即inner为左右对象的交集)。
sort:综合通过联接键按字典顺序对结果进行排序。默认值为True,
设置为False将提高性能极大地在许多情况下
suffixes:字符串后缀并不适用于重叠列的元组。默认值为('_x','_y')
即两个重复的列名称用后缀区分
copy:(默认值True)。
indicator:将列添加到输出。