财务数据分析sql python_基于SQL查询的Python数据分析

至少您需要构造这些数据为了进行良好的分析,您可以在您的数据库引擎或python中进行(我将通过这种方式,使用SNygard建议的pandas)。在

起初,我创建了一些假数据(由您提供):import pandas as pd

import numpy as np

from ast import literal_eval

data = [[12346, '(135:2345678, 212:4354670, 198:9876545)', '(Flag1, Flag2, Flag3)'],

[12345, '(136:2343678, 212:4354670, 198:9876541, 199:9876535)', '(Flag1, Flag4)']]

df = pd.DataFrame(data,columns=['id','relationships','flags'])

df = df.set_index('id')

df

为了按列汇总或计数,我们需要改进我们的数据结构,在某种程度上,我们可以使用部门、关系或标志应用分组操作。在

我们将把关系和标志列从string类型转换为python字符串列表。因此,flags列将是python标志列表,而relationships列将是python关系列表。在

^{pr2}$

将relationships列转换为list后,我们就可以用同样多的列创建一个新的dataframe

作为我们的关系。在rel = pd.DataFrame(df['relationships'].values.tolist(), index=rel.index)

之后,我们需要堆叠保留其索引的列,因此我们将使用pandas multi_索引:id和关系列号(0,1,2,3)relations = rel.stack()

relations.index.names = ['id','relation_number']

relations

此时,我们已经将所有的关系排成一行,但仍然不能使用

relation_type功能。所以我们将把关系数据分成两列:relation_type和{},使用:。在clear_relations = relations.str.split(':')

clear_relations = pd.DataFrame(clear_relations.values.tolist(), index=clear_relations.index,columns=['relation_type','department'])

clear_relations

我们的关系可以分析,但我们的旗帜结构仍然是非常无用的。所以我们将把标志列表转换成列,然后再对它们进行堆栈。在flags = pd.DataFrame(df['flags'].values.tolist(), index=rel.index)

flags = flags.stack()

flags.index.names = ['id','flag_number']

哇哦!,可以分析了!。在

所以,例如,每种类型有多少种关系,其中一种是最大的:clear_relations.groupby('relation_type').agg('count')['department'].sort_values(ascending=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值