学习记录-11.1

python查看包版本

pip list 查看所有的包版本
pip show xxx 查看xxx包的版本

Python的Tqdm模块——进度条配置

tqdm模块

Pandas DataFrame.head()用法

head() 根据位置返回对象的前n行。如果你的对象中包含正确的数据类型, 则对于快速测试很有用。此方法用于返回数据帧或序列的前n行(默认值为5)。

Pandas中loc和iloc函数用法详解

添加链接描述

loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)
iloc函数:通过行号来取行数据(如取第二行的数据)

OrderedDict用法

添加链接描述

使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
如果要保持Key的顺序,可以用OrderedDict

>>> from collections import OrderedDict
>>> d = dict([('a', 1), ('b', 2), ('c', 3)])
>>> d # dict的Key是无序的
{'a': 1, 'c': 3, 'b': 2}
>>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> od # OrderedDict的Key是有序的
OrderedDict([('a', 1), ('b', 2), ('c', 3)])

注意,OrderedDict的Key会按照插入的顺序排列,不是Key本身排序:

>>> od = OrderedDict()
>>> od['z'] = 1
>>> od['y'] = 2
>>> od['x'] = 3
>>> list(od.keys()) # 按照插入的Key的顺序返回
['z', 'y', 'x']

OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:

rom collections import OrderedDict

class LastUpdatedOrderedDict(OrderedDict):

    def __init__(self, capacity):
        super(LastUpdatedOrderedDict, self).__init__()
        self._capacity = capacity

    def __setitem__(self, key, value):
        containsKey = 1 if key in self else 0
        if len(self) - containsKey >= self._capacity:
            last = self.popitem(last=False)
            print('remove:', last)
        if containsKey:
            del self[key]
            print('set:', (key, value))
        else:
            print('add:', (key, value))
        OrderedDict.__setitem__(self, key, value)

不知道为啥我这个好像没有那种顺序区别
在这里插入图片描述
在这里插入图片描述

Pandas DataFrame.iterrows() 示例

添加链接描述

如果要遍历DataFrame以对每行执行一些操作,则可以在Pandas中使用iterrows()函数。
Pandas 使用三个函数来迭代DataFrame的行,即 iterrows(), iteritems()itertuples()

iterrows()负责遍历DataFrame的每一行。它返回一个作为和作为事件的迭代器,它包含一个系列的每一行的索引数据。
我们有下一个函数来查看迭代器的内容。
函数返回每个索引值以及包含每一行数据的序列。

  • iterrows()-用于迭代(索引, 系列)对的行。
  • iteritems()- 用于迭代(键, 值)对。
  • itertuples()-用于迭代作为namedtuples的行。
import pandas as pd
import numpy as np

info = pd.DataFrame(np.random.randn(4, 2), columns = ['col1', 'col2'])
for row_index, row in info.iterrows():
   print (row_index, row)

0   name        John
     degree      B.Tech
score         90
Name: 0, dtype: object

1 name      Smith
degree    B.Com
score        40
Name: 1, dtype: object

2 name      Alexander
degree        M.Com
score            80
Name: 2, dtype: object

3 name      William
degree     M.Tech
score          98
Name: 3, dtype: object
re.findall 用法

添加链接描述

re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)
语法:

findall(pattern, string, flags = 0 )
regular_v1 = re.findall(r"docs","https://docs.python.org/3/whatsnew/3.6.html")
print (regular_v1)
# ['docs']
pd.merge函数

添加链接描述

拼接两个表

pd.replace替换函数

添加链接描述

df.replace(to_replace, value) 前面是需要替换的值,后面是替换后的值。
这样会搜索整个DataFrame, 并将所有符合条件的元素全部替换。
进行上述操作之后,其实原DataFrame是并没有改变的。改变的只是一个复制品。
如果需要改变原数据,需要添加常用参数 inplace=True

但是我发现如果某列是一个列表, 想替换列表中的某项, 查找的时候是把列表当作一个完整的项, 不能替换成功的.

python交换字典键值对

添加链接描述

>>> myDict = {'a':'A','b':'B','c':'C'}
>>> myDict
{'a': 'A', 'c': 'C', 'b': 'B'}

>>> myDict = {v:k for k, v in myDict.items()}
>>> myDict
{'A': 'a', 'C': 'c', 'B': 'b'}
————————————————
版权声明:本文为CSDN博主「Cain」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Cain/article/details/6575177
获取Dataframe元素值的几种方法

添加链接描述
添加链接描述

可以使用df.loc或者df.at指定横纵标签取值
可以使用df.iloc指定横纵排序数取值

# 行标签为 dates[0] 列标签为  ‘B’
In [11]: df.at[dates[0],'B']
Out[11]: 1.4101730698116766

# 行标签为 dates[0] 列标签为  ‘A’
In [12]: df.loc[dates[0],'A']
Out[12]: -1.556932174858093

# 1行1列数值 (0为起始值)
In [13]: df.iloc[1,1]
Out[13]: -1.0174052514807
替换列表中的元素

添加链接描述

方法一:多种异常字段替换成一种字段

# 原数据
data = [123, 234, '零', 'None', 8975]
# 需要替换字段
replace = ['零', 'None']
result = [0 if i in replace else i for i in data]
 
Out[6]: [123, 234, 0, 0, 8975]   # 替换后结果

方法二:多字段替换

# 原数据
data = [123, 234, '零', 'None', 8975]
# 需要替换字段
replace = {'零': 0, 123: '一二三'}
result = [replace[i] if i in replace else i for i in data]
 
Out[9]: ['一二三', 234, 0, 'None', 8975]    # 替换后结果
DataFrame.values属性

添加链接描述
用法: DataFrame.values
参数:没有
返回: 返回给定DataFrame的Numpy表示形式

# importing pandas as pd 
import pandas as pd 
  
# Creating the DataFrame 
df = pd.DataFrame({'Weight':[45, 88, 56, 15, 71], 
                   'Name':['Sam', 'Andrea', 'Alex', 'Robin', 'Kia'], 
                   'Age':[14, 25, 55, 8, 21]}) 
  
result = df.values 
# Print the result 
print(result)

在这里插入图片描述
pandas 的 DataFrame对象,知道它们由三个组成并存储为属性的组件很有用:

.values:对应的二维NumPy值数组。
.columns:列索引:列名称。
.index:行的索引:行号或行名。

23 种 Pandas 核心操作

添加链接描述

Sklearn fit , transform ,fit_transform

添加链接描述
添加链接描述

fit(): 求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。
transform(): 在fit的基础上,进行标准化,降维,归一化等操作。
fit_transform(): fit和transform的组合,既包括了训练又包含了转换。

使用方法:
第一步:fit_transform(trainData)

对trainData进行fit的整体指标,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的);

第二步:transform(testData)

对testData使用同样的均值、方差、最大最小值等指标进行转换,从而保证train、test处理方式相同。

注意:

必须先用fit_transform(trainData),之后再transform(testData)
直接transform(testData),程序会报错
如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值