Pandas工作实践数据分析总结

Pandas常用的功能函数和数据处理技巧

修改列名称

file_data = pd.read_csv(‘data.csv’)

file_data.rename(columns = {file_name.columns[0]:’new_name’}, inplace=True) 
# inplace表示是否要原地修改,原地修改意味着不用重新赋值

重置索引值

首选:

df_new  = df.reset_index(drop=True)

删除某行之前的和某行之后的数据

new_df = df.truncate(before=2, after=4)

Map操作

如果想对某咧进行操作,比如,某列中的数据内容是1.男,类似这种方式,我想把1.去掉,这个时候怎么去做,可以这样:

file_data.columns = file_data.columns_name.map(lambda x: x.split('.')[-1])

如果想访问某一列的数据

df.columns_name 或者 df[‘columns_name’]

数据的可视化

%matplotlib inline

plt.hist(df.columns_name)

删除缺失值,注意这里需要赋值操作,不然是不生效的

new_df = df.dropna()

其中有个参数为how,一行中都有缺失才删除

new_df = df.dropna(how=‘all’)

填补缺失值(用均值)

new_data.fillna(mean)

使用前向来填充

 new_data.fillna(method=‘ffill’)

使用后向来填充

new_data.fillna(method=‘bfill’)

使用常量来填补缺失值

 pd.fillna({‘x’:2,’y’:3})

标记重复值

df.duplicated()返回的是布尔值,是否重复

删除重复值

如果按照某些特征进行重复比较和删除

new_df = df.drop_duplicates(['a','b'])

汇总函数

横向或者纵向汇总 

df.sum(axis=0,skipna=False)

如果用pd.read_csv读取文件的时候要注意

如果csv文件中没有列名的时候,可以操作如下指定列名

# 如果读取的csv没有列名,可以用这种方式增加列名
df = pd.read_csv('a.csv',names=['var1','var2'])

如果想用数据中的某列作为索引,可以这样写

df = pd.read_csv('a.csv',names=['var1','var2'],index_col='var1')

其中还有sep参数,默认的是逗号作为分隔符,如果是别的符号可以修改

如果文件的开头有注释,这时候你可以选择要跳过的行数

# 实现忽略前两行,读取以逗号分隔的csv文件
df = pd.read_csv('a.csv',skiprows=[0,1],sep=',')

这个时候会忽略前两行。

如果想要读取指定前N行,可以用这样的参数

# 表示读取该csv文件的前1000行
df = pd.read_csv('a.csv',nrows=1000)

设定条件进行赋值

# 对col1的值为4,并且col2列的值为5,满足这种前提,对y_hat列的值,赋值为-999
df.loc[(df['col1']==4)&(df['col2']==5),'y_hat'] = -999

对某些值进行替换

# 对于df中的各个值,如果有1,2,3,4,5的值,替换为999
new_df = df.replace([1,2,3,4,5],999)

对data中的1,2,3,4,替换为np.nan,这个时候并没有对data本身的数据进行替换操作。要进行赋值才能够保留替换后的数据。

也可以是字典的形式:

# 将df中值为-999的替换为None,将-1000替换为0
df = df.replace({-999:np.nan,-1000:0})

将连续值进行离散化(面元)

ages = [20,23,34,55,67,25,40,89,100,12,20,39]
bins = [10,20,30,40,50,100]
cats = pd.cut(ages,bins)
cats.codes
>>> array([0, 1, 2, 4, 4, 1, 2, 4, 4, 0, 0, 2], dtype=int8)

在pandas对象添加一行

# point_content 为指定的行
df.append(point_content,ignore_index=True)

Ignore_index 表示的是忽略添加行的索引

如果已知两个表,想要做一个连接,左连接或者右连接:

# 按照a的id1和b的id2列做一个右连接;on里面是key
# 意思就是a中的id1和b中的id2值相同的部分
new_df = pd.merge(a,b,how='left',on=['id1','id2'])

如果将索引从1开始,不希望从0开始

df = df.index + 1

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pandas数据分析 普林大数据学院 普 林 大 数 据 学 院 P R I N C E T E C H S B I G D A T A C O L L E G E 2 3 目录 第一部分 文件读写 第二部分 变量离散化 第三部分 缺失值填补 普林大数据学院 普 林 大 数 据 学 院 P R I N C E T E C H S B I G D A T A C O L L E G E 第四部分 数据标准化 第五部分 数据合并 第六部分 数据组合 第七部分 数字编码 第八部分 OneHot编码 普 林 大 数 据 学 院 P R I N C E T E C H S B I G D A T A C O L L E G E 普林大数据学院 4 数据文件操作——读入数据 • pandas提供了一些用于将表格型数据读取为DataFrame对象的函数, 常用的函数为read_csv和read_table • 函数的选项可以划分为几个大类 • 索引:将一个或多个列当做返回的DataFrame处理,以及是否从文件、用户 获取列名 • 类型推断和数据转换:包括用户定义值的转换、缺失值标记列表等 • 日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合起来 • 迭代:支持对大文件进行逐块迭代 • 不规整数据问题:跳过一些行、页脚、注释或其他一些不重要的东西 普 林 大 数 据 学 院 P R I N C E T E C H S B I G D A T A C O L L E G E 普林大数据学院 5 文件读写 Pandas提供了一些用于将表格型数据读取位DataFrame对象的函数。 其中最常用的为read_csv和read_table。read_csv 从文件、URL、文件 型对象中加载带分隔符的数据。默认分隔符为逗号。read_table从文件、 URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符 (“\t”) In[19]:df= pd.read_csv('iris.csv') df.head() Out[19]: sepal_len sepal_wh petal_len petal_wh target 0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做个自由的人

随缘吧打赏与否还是会坚持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值