python数据处理常用库与函数

文章目录

  • 基础
    • 字典操作
      • 字典排序
      • 字典拼合
  • pandas
    • read_csv() - 读取csv文件
    • pandas.DataFrame.columns - 修改列名
    • pandas.DataFrame.iterrows() - 遍历所有元素
    • pandas.concat() - 数据合并、重塑
      • 适用场景
  • sklearn
    • sklearn.preprocessing.LabelEncoder()

不全,碰到就加,给自己复习用,不然之前学过的,太久不用就忘了,又得重新学orz。

基础

字典操作

字典排序

不论是按key排序,还是按values排序,都一条,比较好记
sorted字典的items()(迭代对象,是元组),排序完了再转换回来

a = {'d': 1, 'c': 4, 'a': 2, 'b': 3}
b = dict(sorted(a.items(), key=lambda item: item[0]))  # 按key排序
c = dict(sorted(a.items(), key=lambda item: item[1]))  # 按values排序
print(sorted(a))  # 一般直接用字典名,都是指代key列表,等于dict.keys()
print(b, c, sep='\n')

#输出
[‘a’, ‘b’, ‘c’, ‘d’]
{‘a’: 2, ‘b’: 3, ‘c’: 4, ‘d’: 1}
{‘d’: 1, ‘a’: 2, ‘b’: 3, ‘c’: 4}

字典拼合

a = {"d":1, "c":2}
b = {'c':3, 'a':4}
c = {"b":5, "c":6}
#合并字典,值以后面的为准
d1 = {**a, **b}
d2 = {**b, **a}
d3 = {**a, **b, **c}
print(d1, d2, d3, sep='\n')

#输出
{‘d’: 1, ‘c’: 3, ‘a’: 4}
{‘c’: 2, ‘a’: 4, ‘d’: 1}
{‘d’: 1, ‘c’: 6, ‘a’: 4, ‘b’: 5}

pandas

pandas文档
https://pandas.pydata.org/pandas-docs/stable/index.html
使用例子

data = pd.DataFrame({‘a’: [1,2,3], ‘b’: [2,3,4], ‘c’: [3,4,5], ‘d’: [4,5,6]})

a b c d
1 2 3 4
2 3 4 5
3 4 5 6

read_csv() - 读取csv文件

返回二维的DataFrame,或一维的Series

参数 说明
filepath_or_buffer 文件地址,可以是本地文件,也可以是URL( http、ftp…)
header 默认状态时把第一行当作列名,设置成None则自动生成数字列名
parse_dates
index_col
squeeze
data_parser

pandas.DataFrame.columns - 修改列名

data.columns = [‘aa’, ‘bb’, ‘cc’, ‘dd’] # 修改列名

pandas.DataFrame.iterrows() - 遍历所有元素

for index, num in data.iteritems():
    print(index, num)

a 0 1
1 2
2 3
Name: a, dtype: int64
b 0 2
1 3
2 4
Name: b, dtype: int64
c 0 3
1 4
2 5
Name: c, dtype: int64
d 0 4
1 5
2 6
Name: d, dtype: int64

pandas.concat() - 数据合并、重塑

可以和数据库数据的拼接做类比

参数 说明
objs 想要连接的列表或字典,多个对象放在列表中作为一个参数
axis 连接的轴方向。默认为0(如果是二维数据,就是竖着的方向)
join 其他轴的索引按交集inner、并集outer进行合并。默认为"outer"
join_axes 指明用于其他n-1条轴的索引,不执行交并运算
keys 与连接对象有关的值,用于形成连接轴向上的层次化索引,可以是列表、数组、元组数组、数组列表(需设置levels)
levels 指定用作层次化索引各个级别的索引(用于设置keys)
names 创建分层级别的名称(用于设置keys、levels)
verify_integrity 检查结果对象新轴上的重复情况,发现时引发异常。默认为False(允许重复)
ignore_index 不保留连接轴上的索引,产生新索引range(total_length)

适用场景

  1. 得到一些训练集和测试集,需要将他们拼成一个总集。此时头部标签是一样的,只需要纵向拼接

data = pd.concat([train_data, test_data])

  1. 。。。

sklearn

sklearn.preprocessing.LabelEncoder()

LabelEncoder是一个类,包含4个方法

方法 说明
fit() 根据输入形成一个字典
transform() 将输入转换为索引
fir_transform() 先形成字典,再转换为索引
inverse_transform() 根据索引得到原始数据

将不规律的特征值转换为索引来规范化取值

比如给一些性别特征值,转换成01

你可能感兴趣的:(python,数据挖掘)