Pandas数据结构基础
pandas的数据结构
obj = Series(np.arange(5.),index = ['a','b','c','d','e'])
obj.values查看元素
obj.index查看索引
赋值:选取索引
obj['a']=20 #新增列也是这样
ser.dropna()#过滤NaN ser[ser.notnull()]
Series有一个应用于元素级函数的map方法。 ?????????? frame['e'].map(format) index对象 ser =pd.Series([5, 0, 3, 8, 4],index = ['red', 'blue', 'yellow', 'white', 'green']) In [166]: ser Out[166]: red 5 blue 0 yellow 3 white 8 green 4 dtype: int64 In [167]: ser.idxmin() #idxmax() Out[167]: 'blue' #排序:
frame.sort_index()
frame.sort_idnex(axis = 1) #根据任意轴上的索引就行排序
frame.sort_index(axis = 1,ascending = False) #数据默认是按升序排序的,也可设置降序排序。 axis * 使用0值表示沿着每一列或行标签\索引值向下执行方法 * 使用1值表示沿着每一行或者列标签模向执行对应的方法
def f(s): return x.max() -x.min() dataframe.apply(f) dataframe.describle()#计算多个统计量 排序: dateframe.sort_index() Series.order()#注意区别
merge函数的参数: 默认以重叠的列名当做连接键。inner取交集
① left # 用于合并的左侧DataFrame
② right # 用于合并的右侧DataFrame
③ how # “inner”、“outer”、“left”、‘“right”其中之一,默认为“inner” ④ on # 用于连接的列名 ⑤ left_on、tight_on # 左右侧DataFrame分别指定键 ⑥ left_index、right_index # 左右侧将索引用作连接键 ⑦ sort# 合并后进行排序,默认为True,处理大数据时,最好禁用 ⑧ suffixes # 字符串元组,用于追加到重叠列名的结尾,默认为“_x”、“_y” ⑨ copy # 默认为Flase,可以在某种特殊情况下禁用,默认总是复制。 left_index/ right_index: 如果是True的haunted以index作为对齐的key sort:根据dataframe合并的keys按字典顺序排序,默认是,如果置false可以提高表现。
frame1与frame2的列名不能有重合 concatenation数组的拼接
concat()按轴拼接
创建等级索引
轴向旋转stack() 列转为行
映射
map()
rename()
reindex, recolum必须是字典
inplace split('')#以参考点为分隔符。将文本分为几部分 GroupBy对象支持迭代,可以产生一组二元元组(由分组名和数据块组成)groupby默认是在axis = 0上(列)进行分组的
df1=df.groupby('key1') In [11]: df1 Out[11]: <pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f912bf79518> 变量df1是一个GroupBy对象,它实际上还没有进行任何计算,只是含有一些有关分组键df['key1']的中间数据而已,然后我们可以调用GroupBy的mean等方法来计算分组平均值: dataframe.groupby('A').mean() 按A列进行分组 获取其他列的均值 dataframe.agg() 对不同的列采用不同的聚合方法(函数) data.agg({'B':'mean','C':'sum'}) #B列均值,C列汇总
高级数据聚合transform apply *如果按照A进行分组后,对多列采用相同的聚合方法( 对DataFrame的多个列同时进行运算),我们可以借助apply函数:(将函数的返回结果组合起来) dataframe.groupby('A').apply(np.mean) apply将函数应用到由各列或行形成的一维数组上--------对应pd.Series,Series是一维标记的数组,能够保存任何数据类型(整数,字符串,浮点数,Python对象等)
pandas
读CSV文件 1.read_csv(filename) read_csv(filename,header=None)#默认添加表头 read_csv(filename, name=)#指定表头 2.read_table(filename, sep=)
astype astype(str) #数据类型转换
DataFrame.to_dict(orient='dict')
将DataFrame格式的数据转化成字典形式
参数:当然参数orient可以是字符串{'dict', 'list', 'series', 'split', 'records', 'index'}中的任意一种来决定字典中值的类型
字典dict(默认):类似于{列:{索引:值}}这样格式的字典
列表list:类似于{列:[值]}这种形式的字典
序列series:类似于{列:序列(值)}这种形式的字典
分解split:类似于{索引:[索引],列:[列],数据:[值]}这种形式的字典
记录records:类似于[{列:值},...,{列:值}]这种形式的列表
索引index:类似于{索引:{列:值}}这种形式的字典
在新版本0.17.0中,允许缩写,s表示序列,sp表示分裂
返回:结果:像{列:{索引:值}}这种形式的字典
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
- Series是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。由一组数据即可产生最简单的Series。




- DataFrame是一个表格型的数据结构(传入的参数一般为字典/列表),含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。
- 索引对象index


DataFrame索引上的合并mergehttps://blog.csdn.net/weixin_37226516/article/details/64137043
pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来 数据集的合并(merge)或连接(join)运算是通过一个或多个键将行链接起来的 默认情况下,merge做的是“inner”连接





v0.17.0 版本的pandas开始还支持一个indicator的参数,如果置True的时候,输出结果会增加一列 ’ _merge’。_merge列可以取三个值
left_only 只在左表中 right_only 只在右表中 both 两个表中都有
join方法
dataframe内置的join方法是一种快速合并的方法。它默认以index作为对齐的列。suffix后缀参数
如果和表合并的过程中遇到有一列两个表都同名,但是值不同,合并的时候又都想保留下来,就可以用suffixes给每个表的重复列名增加后缀。suffixes=['', ' old'])




















1.transform 传入的函数只能返回两种结果,可以广播的标量值或者与分组大小相同的结果数组。
例子:对分组求均值,然后把这个均值赋值给整个组(可广播的标量值)




更多精彩