函数
|
说明
|
df.shape
|
输出dataframe有多少行,多少列
|
df.shape[0]
|
输出行数量,1 输出列数量
|
df.colums
|
输出列的名字
|
df.index
|
输出行的名字
|
df.dtpyes
|
输出列的类型名
|
df.head(n)
|
输出df前n行
|
df.tail(n)
|
输出df后n行
|
df.sample(n=3)
|
随机抽取几行
|
df.describe()
|
对数字进行一个简单直观统计
|
函数
|
说明
|
loc['index名']
|
索引某行,返回Series
|
loc['index名n':'index名m']
|
索引多行,返回DataFrame
|
loc[:,'date':'code']
|
索引所有行,列为date,code ,返回DataFrame
|
at[index,'code']
|
访问某个元素,loc也可以,但更为高效
|
iloc[n]
|
以序号选取某一行,返回Series
|
iloc[n:m]
|
序号多行选择,返回DataFrame
|
iloc[:,n:m]
|
第一个:选择所有,逗号后面的是多列选择,
返回DataFrame
|
iloc[:,:]
|
读取所有行和列,返回DataFrame
|
iat[1,1]
|
读取指定的某个元素,
使用iloc也可以,但这个更高效
|
函数
|
说明
|
df['股票名']+'_地产'
|
原有字符上添加新字符
|
df['收盘价']*df['成交量']
|
多列操作运算,eg:结果是成交额
|
df['新列名']=df['股票名']+'_地产'
|
新增一列
|
函数
|
说明
|
df['收盘价'].mean()
|
一列求均值,返回一个数
|
df[['收盘价','最高价']].mean()
|
多列求均值,返回多个数
|
df[['收盘价','最高价']].mean(axis=1)
|
选择行,操作多列,返回所有行对应的均值
默认axis=0,选中列,操作多行
|
df['收盘价'].max()
|
原理同上,返回最大值
|
df['收盘价'].min()
|
原理同上,返回最小值
|
df['收盘价'].std()
|
原理同上,返回标准差
|
df['收盘价'].count()
|
原理同上,返回非空数值数量
|
df['收盘价'].median()
|
原理同上,返回中位数
|
df['收盘价'].quantile(0.5)
|
原理同上,返回50%分位数
|
很有用的函数
函数
|
说明
|
shif()
|
偏移函数,大于0 下偏移
|
diff()
|
偏移差值函数
|
pct_change()
|
偏移差值比例函数,相当于涨跌幅
|
rank(ascending=True,
pct=False)
|
排序函数,ascending代表顺序排序
还是逆序排序,pct是否百分比排序(0-1.0)
|
value_counts()
|
统计该列中每个元素出现的个数,
返回数据Series
|
df['收盘价_3天均值']=df['收盘价'].rolling(3).mean()
|
rolling函数,取最近的n行,
其实就是一个滑动窗口
|
df['收盘价_至今均值']=df['收盘价'].expanding().mean()
|
expanding函数,从开始到当前行
|
函数
|
说明
|
dropna(how='any')
|
删除带有空值的行,
how='any'意味着,只要有一个空值就删除
how='all'要全是空值才删除
|
dropna(subset=['code','name'],how='any')
|
选中对应的列符合空值删除行
|
fillna(value='我叫补全')
|
缺失值补全为固定值
|
df['某列'].fillna(value=df['收盘价'],inplace=True)
|
某列空值以某列数值补全
|
fillna(method='ffill')
|
向上寻找非空值补全
|
fillna(method='bfill')
|
向下寻找非空值补全
|
fillna(method='bfill')
|
向下寻找非空值补全
|
notnull()
|
非空值判断
|
isnull()
|
空值判断
|
df[df['某列'].notnull()]
|
以某列不为空作为条件,行输出
|
函数
|
说明
|
reset_index(inplace=True)
|
索引恢复为默认
|
sort_values(by=['date'],ascending=1)
|
by参数指定按照什么进行排序,
ascending指定顺序还是逆序
|
sort_values(by=['code','date'],ascending=[1,1])
|
多列进行排序,eg code 相等的放前面,
再按date进行排序
|
函数
|
说明
|
df1.append(df2,ignore_index=True)
|
拼接函数,ignore_index 是否忽略index名,
True重新给index, eg 上下拼接
|
函数
|
说明
|
drop_duplicates(subset=['股票代码','交易日期'],
keep= 'first')
inplace=True
|
subset 参数指定用那几列作为去重的依据,
若不指定则以全部列的数据做为判断,
keep 参数是指去重时保持上面一行
还是下面一行
|
其他重要的函数
函数
|
说明
|
df['股票代码'].str[:2]
|
对股票代码列的字符串去前两字符
|
df['股票代码'].str.upper()
|
对股票代码列的字符串转为大写
|
df['股票代码'].str.lower()
|
对股票代码列的字符串转为小写
|
df['股票代码'].str.len()
|
对股票代码列的字符串进行计算
|
df['股票代码'].str.strip()
|
对股票代码列的字符串进行空格去掉
|
df['股票代码'].str.contains('sz')
|
该列是否包含该字符
|
df['股票代码'].str.replace('sz','sh')
|
该列字符进行替换
|
df['股票代码'].str.split('; ')
|
对字符串进行分割
|
df['股票代码'].str.split('; ').str[:2]
|
对字符串进行分割后,取第一位置
|
函数
|
说明
|
df['交易日期']=pd.to_datetime(df['交易日期'])
|
将交易日期由字符串转成日期
|
df['交易日期']
|
通过交易日期进行访问
|
df['交易日期'].dt.year
|
输出日期的年份
|
df['交易日期'].dt.month
|
输出日期的月份,其他雷同week
|
df['交易日期']+pd.Timedelta(days=1)
|
用于表示时间差数据
|
上面都是一些很常用的函数,官方文档才是最全的,数据清洗统计过程中常常去这里查吧。
官方使用手册
https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html
总结于 2022 年 11 月 20 日 16:27:55
本文由mdnice多平台发布