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)
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'
# 请