1.zip函数
作用:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表;
语法:
zip([iterable, ...])
实例:
a = [1, 2]
b = [4, 5]
c = zip(a, b)
print(list(c))
# [(1, 4), (2, 5)]
- groupby函数与agg函数
groupby:数据分组
agg:对groupby分组的数据,使用统计函数,并对结果命名;
import pandas as pd
df = pd.DataFrame({
'key1': ['a', 'a', 'b', 'b', 'a'],
'data1': [1, 2, 3, 4, 5]})
print(df)
data1 = df.groupby(['key1'])['data1'].sum()
print(data1)
# as_index:'key1'中元素是否作为索引列(默认作为索引列)
data2 = df.groupby(['key1'], as_index=False)['data1'].agg({'key_sum': 'sum'})
print(data2)
'''
data1 key1
0 1 a
1 2 a
2 3 b
3 4 b
4 5 a
key1
a 8
b 7
Name: data1, dtype: int64
key1 key_sum
0 a 8
1 b 7
'''
- apply函数
当在pandas上使用时,对于pandas中的一列使用一个特定函数处理时,可以使用apply;
import pandas as pd
df = pd.DataFrame({
'key1': [1, 2, 3],
'key2': [6, 7, 8],
'key3': [11, 12, 13]
})
print(df)
def data_sum(row):
if row >= 2:
return 1
else:
return 0
print('*************')
temp = df['key1'].apply(data_sum)
print(temp)
'''
key1 key2 key3
0 1 6 11
1 2 7 12
2 3 8 13
*************
0 0
1 1
2 1
Name: key1, dtype: int64
'''
4.eval函数
作用:将字符串string对象转化为有效的表达式参与求值运算返回计算结果;
str = '{"name": "Bob", "age":21, "sex":"male"}'
str1 = eval(str)
print(str1)
# {'name': 'Bob', 'age': 21, 'sex': 'male'}
- 数据拼接
numpy&tensorflow中数据拼接参考:
https://www.jianshu.com/p/cfe655cb5dd6
pandas中数据拼接:
1)concat函数
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False)
参数:
objs: series,dataframe或者是panel构成的序列lsit
axis: 需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer
2)merge函数
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False)
left: 一个dataframe对象
right: 另一个dataframe对象
how: 可以是'left', 'right', 'outer', 'inner'. 默认为inner。
on: 列名,两个dataframe都有的列。如果不传参数,
而且left_index和right_index也等于False,
则默认把两者交叉/共有的列作为链接键(join keys)。
可以是一个列名,也可以是包含多个列名的list。
left_on: 左边dataframe的列会用做keys。可以是列名,
或者与dataframe长度相同的矩阵array。
right_on: 右边同上。
left_index: 如果为Ture,用左侧dataframe的index作为
连接键。如果是多维索引,level数要跟右边相同才行。
right_index: 右边同上。
sort: 对合并后的数据框排序,以连接键。
suffixes: 一个tuple,包字符串后缀,用来加在重叠的列名后面。
默认是('_x','_y')。
copy: 默认Ture,复制数据。
indicator: 布尔型(True/FALSE),或是字符串。
如果为True,合并之后会增加一列叫做'_merge'。
是分类数据,用left_only, right_only, both来标记
来自左边,右边和两边的数据。