数据分析入门task3

本记录为本人参加datawhale数据分析(泰坦尼克号任务项目)学习笔记,不足之处多多指教。

数据重构

一、数据拼接合并

pandas中的merge,concat,join,aptend

1 、merge函数类似数据库中的
(1)内连接,pd.merge(a1, a2, on=‘key’)
(2)左连接,pd.merge(a1, a2, on=‘key’, how=‘left’)
(3)右连接,pd.merge(a1, a2, on=‘key’, how=‘right’)
(4)外连接, pd.merge(a1, a2, on=‘key’, how=‘outer’)
注意:
如果 on 有两个条件,on = [‘a’,‘b’] ;how = ‘left’,‘right’,‘outer’

2、append,相当于R中的rbind
data1.append(data2,ignore_index = True)
注意: ignore_index = True:这个时候 表示index重新记性排列,而且这种方法是复制一个样本

3、join
data2.columns=list(‘pown’)
result = data1.join(data2)
注意: 列名不能重叠,在这里的用法和R中rbind很像,但是join的用法还是相对麻烦的
4、concat函数是pandas底下的方法,可以把数据根据不同的轴进行简单的融合
pd.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
参数含义
objs:Series,DataFrame或Panel对象的序列或映射。如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。
axis:{0,1,…},默认为0。沿着连接的轴。0-行,1-列
join:{‘inner’,‘outer’},默认为“outer”。如何处理其他轴上的索引。outer为并集、inner为交集。
ignore_index:boolean,default False。如果为True,请不要使用并置轴上的索引值(重置索引值)。结果轴将被标记为0,…,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。
join_axes:Index对象列表。用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。
keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。
levels:序列列表,默认值无。用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断。
names:list,default无。结果层次索引中的级别的名称。
verify_integrity:boolean,default False。检查新连接的轴是否包含重复项。这相对于实际的数据串联可能是非常昂贵的。
copy:boolean,default True。如果为False,请勿不必要地复制数据。

二、数据重排

在用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即“不要堆叠”,我对两个函数是这样理解和区分的。
常见的数据的层次化结构有两种,一种是表格,一种是“花括号”,即下面这样的l两种形式:
表格在行列方向上均有索引(类似于DataFrame),花括号结构只有“列方向”上的索引(类似于层次化的Series),结构更加偏向于堆叠(Series-stack,方便记忆)。stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引,反之,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引。例:
#表格变成列
data2=data.stack()
#列表成表格
data3=data2.unstack()

三、数据聚合与运算
groupby机制
groupby:分割,应用和组合,简单说分组计算。groupby经常只需一行代码,就可以计算每组的和,均值,计数,最小值以及其他累计值。它返回一个DataFrameGroupby对象,你可以将它看成是一个特殊的DataFrame对象,里面隐藏着若干组数据。
1、按列取值:Groupby对象按列取值,并返回一个修改过的Groupby对象。

df.groupby('key1')['data1'].sum()

2、按组迭代:返回的每一组都是Series或FataFrame:

for k1, k2 in df.groupby(['key1', 'key2']):
    print(k1, k2)

3、调用方法:直接调用Python的一些方法

df.groupby(['key1', 'key2']).describe()

agg函数
python中的agg函数通常用于调用groupby()函数之后,对数据做一些聚合操作,包括sum,min,max以及其他一些聚合函数

df_agg = df.groupby('Country').agg(['min', 'mean', 'max'])

text.groupby('Sex').agg({'Fare': 'mean', 'Pclass': 'count'}).rename(columns=
                            {'Fare': 'mean_fare', 'Pclass': 'count_pclass'})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB在数据分析方面具有多个优势。首先,它可以利用缓存机制和内存计算来加速数据分析过程。其次,MongoDB提供了聚合框架,可以实现统计分析功能。此外,由于MongoDB具有灵活的结构,可以存储中间结果,从而进一步优化数据分析。因此,对于大多数简单实时统计分析场景,MongoDB是一个很好的选择。对于有亿级数据量的实时分析场景,MongoDB也被世界顶级航旅服务商采用。 此外,MongoDB还适用于其他一些场景,如跨地区集群、地理位置查询以及处理异构数据和大宽表的海量数据分析。在这些方面,MongoDB都具有明显的优势。 需要注意的是,MongoDB是一种OLTP型的数据库,类似于Oracle、MySQL和SQL Server等OLTP型数据库。它可以执行MySQL可以执行的任务,只是方法不同而已。从MongoDB 4.0开始,它完全支持与交易相关的强事务功能。因此,对于数据分析方面的需求,MongoDB是一个可靠的选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MongoDB入门介绍与案例分析](https://blog.csdn.net/Guzarish/article/details/119793086)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值