python-13-pandas的常用操作

皮皮冰燃 2020-10-22 17:49:19

56

收藏

分类专栏: python3 文章标签: python

版权

(1)获取数据
(2)数据处理:处理缺失数据,可视化
(3)特征工程
(4)算法训练:模型
(5)模型评估
(6)应用
from numpy import nan as NA

1 分析数据

df[“method”]获取指定列
df.iloc[0]获取第一行的数据
df.iloc[0][“code”]获取第一行指定列的数据
df.shape()获取行数和列数

1 滤除缺失数据

SeriesNew = Series.dropna()SeriesNew = Series[Series.notnull()]DataFrameNew = DataFrame.dropna()删除含NA的行DataFrameNew = DataFrame.dropna(how="all")删除全为NA的行DataFrameNew = DataFrame.dropna(axis=1,how="all")删除全为NA的列DataFrameNew = DataFrame.dropna(axis=1)删除含NA的列DataFrameNew = DataFrame.dropna(thresh=n)保留至少有n个非NA的行1234567

注意:(1)DataFrame.dropna()这个操作将删除任何至少有一个空值的行,但是它将返回一个新的DataFrame,而不更改原来的数据,更改原数据可以在这个方法中指定inplace=True。

2 填充缺失数据

DataFrameNew = DataFrame.fillna(num)DataFrameNew = DataFrame.fillna({1:0.5,2:7.3})填充指定列DataFrame.fillna(0,inplace=True)就地修改SeriesNew = Series.fillna(Series.mean())传入Series的平均值1234

3 移出重复数据

Series = DataFrame.duplicated()布尔型Series,各行是否是重复行DataFrameNew = DataFrame.drop_duplicates()DataFrameNew = DataFrame.drop_duplicates(['k1'])根据k1列过滤重复项DataFrameNew = DataFrame.drop_duplicates(['k1','k2'])保留最后一个SeriesNew = Series.map(字典)SeriesNew = Series.str.lower()大写转小写SeriesNew = Series.map(lambda x:f(x))1234567

4 替换值

SeriesNew = Series.replace(-999,np.nan)
Series.replace(-999,np.nan,inplace=True)就地修改
SeriesNew = Series.replace([-999,-1000],np.nan)
SeriesNew = Series.replace([-999,-1000],[np.nan,0])
SeriesNew = Series.replace({-999:np.nan,-1000:0})

5 重命名轴索引

DataFrame.index = DataFrame.index.map(函数)就地修改
DataFrameNew = DataFrame.rename()
s.value_counts()计数

6 图

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
fig,axes = plt.subplot(2,2,sharex=True,sharey=True)
axes[0,0][1,0]
axes[0,1][1,1]
plt.subplots_adjust(wspace=0,hspace=0)调整子图间距
ax.plot(x,y,‘g–’)颜色线型
ax.plot(x,y,linstyle=’–’,color=‘g’)颜色线型

ax.set_xticks([0,250,500])刻度位置
ax.set_xticklables([“one”,“two”,“three”])刻度标签

ax.set_title(“标题”)标题
ax.set_xlabel(“名称”)x轴的名称

ax.plot(x,y,label=‘one’)图例配合label参数使用
ax.legend(loc=“best”)

ax.text()注解
ax.arrow()
ax.annotate()

plt.savefig()保存

Series.plot()
DataFrame.plot()
sns.barplot()柱状图
sns.distplot()直方图和密度图
sns.displot(a,bins=None,hist=True,kde=True,rug=False,fit=None)
sns.regplot()散点图和回归图
sns.pairplot()散点图矩阵,且对角线为直方图或密度图
sns.factorplot()
pd.merge()

7 分组

df.groupby(‘key’)
df.groupby([‘key1’,‘key2’])
df.groupby().size()

8 字符串

str.split(’,’)拆分成列表
str.strip()去除空白符(包括换行符)
substr in str 子串定位
str.index(’,’)找不到会抛异常
str.find(’:’)
str.count(substr)子串出现次数
str.replace(被替,填充)
re.split(’\s+’,str)按一个或多个空白符(制表符、空格、换行符),拆分成列表

regex = re.compile(正则表达式)
regex.findall(str)返回列表
regex.search(str)起始和结束位置
regex.sub(替换物,str)返回新的字符串

9 使用

DataFrame.query(“a>2”)对数据框进行挑选行的操作
(1)时间戳转换为日期时间
时间戳单位秒
pd.to_datetime()
(2)日期时间转变为日期时间索引
pd.DatetimeIndex()
(3)是否包含在其中
Series.isin()

(0)

相关推荐