Python数据处理笔记

Pandas数据操作

Pandas中去除重复项: drop_duplicates

方法

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

参数

drop_duplicate方法是对DataFrame格式的数据,去除特定列下面的重复行。返回DataFrame格式的数据。

subset : column label or sequence of labels, optional 
用来指定特定的列,默认所有列
keep : {‘first’, ‘last’, False}, default ‘first’ 
默认删除重复项并保留第一次出现的项
inplace : boolean, default False 
设置为True是直接在原来数据上修改还是保留一个副本
import pandas as pd

data = pd.DataFrame({'A':[1,1,2,2],'B':['a','b','a','b']})
data.drop_duplicates('B', 'last', inplace=True)
>>>data

输出:
	A	B
2	2	a
3	2	b

pandas.DataFrame更改列名

# 显示df每列的名称
>>> df.columns.values

# 将第三列的列名改为'new name'
>>> df.rename(columns={ df.columns[2]: "new name" }, inplace=True)

# 假如df一共有三列,你想把所有列名依次改为'col_1', 'col_2', 'col_3'
>>> df.columns = ['col_1', 'col_2', 'col_3']

# 假设你的df里有一列叫做'col_1',如果你想把这列的名字改成'col_a',那么可以这样

>>> df = df.rename(columns={'col_1': 'col_a'})

Dataframe删除一行或一列:drop函数

方法

DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)

参数

labels : single label or list-like,Index or column labels to drop.
单个标签或列表, 删除索引或列标签
axis : int or axis name
Whether to drop labels from the index (0 / 'index') or columns (1 / 'columns').
index, columns : single label or list-like。 Alternative to specifying `axis` (``labels, axis=1`` is equivalent to ``columns=labels``).
level : int or level name, default None For MultiIndex
inplace : boolean, default False 
设置为True是直接在原来数据上修改还是保留一个副本

Pandas重置reset_index()

 df = df.reset_index(drop=True)

Pandas常用数据查询语法,点击此链接

numpy数据操作

查看数据类型

arr = np.array([1,2,3,4])
# 查看数据类型
arr.dtype 

numpy设置输出精度

import numpy as np
c = np.random.random(5)
print(c)
# [0.573 0.819 0.712 0.796 0.22 ]
np.set_printoptions(precision=2)
print(c)
# [0.57 0.82 0.71 0.8  0.22]

numpy修改精度

# float -> int
c = np.array([3.45,2.14])
c.astype(np.int32)

字符串数组转换为数值型

numeric_strings = np.array(['1.2','2.3','3.2141'], dtype=np.string_)
numeric_strings
# array(['1.2', '2.3', '3.2141'], dtype='|S6')

# 此处写的是float 而不是np.float64, Numpy会将python类型映射到等价的dtype上
numeric_strings.astype(float)
# array([ 1.2, 2.3, 3.2141])

ASCII转字符串

binascii.b2a_hex(数据)
binascii.hexlify(数据)
返回二进制数据的十六进制表示形式。数据的每个字节 都转换为相应的2位十六进制表示。因此,返回的字节对象的长度是数据长度的两倍。

binascii.a2b_hex(hexstr )
binascii.unhexlify(hexstr )
返回十六进制字符串hexstr表示的二进制数据。这个函数是反函数b2a_hex()。hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则 Error会引发异常。
import binascii
# \x对应的是utf-8编码的数据,通过转化规则可以转换为unicode编码
# python中,直接decode('gb1803')即可
hex_1 = binascii.hexlify(b'\xc7\xeb\r\n')
print(hex_1)
result = binascii.unhexlify(hex_1).decode("gb18030")
print(result)
# b'c7eb0d0a'
# 请
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值