目录
python查看包版本
pip list
查看所有的包版本
pip show xxx
查看xxx包的版本
Python的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)
,虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。