Python:为报告创建模型(使用pandas)
这更像是python的模型设计问题 我需要将多个日志文件中的数据解析并提取到数据帧中。 从这些数据帧中,我需要创建报告(如csv、excel等) 这种设计的一种方法是创建一个具有2个功能的文件: 1.从日志文件提取数据的函数(正则表达式可以) 2.熊猫查询的功能,类似这样:Python:为报告创建模型(使用pandas),python,pandas,Python,Pandas,这更像是python的模型设计问题 我需要将多个日志文件中的数据解析并提取到数据帧中。 从这些数据帧中,我需要创建报告(如csv、excel等) 这种设计的一种方法是创建一个具有2个功能的文件: 1.从日志文件提取数据的函数(正则表达式可以) 2.熊猫查询的功能,类似这样: def get_top1000(group): return group.sort_index(by='births', ascending=False)[:1000] grouped = names.groupb
def get_top1000(group):
return group.sort_index(by='births', ascending=False)[:1000]
grouped = names.groupby(['year', 'sex'])
top1000 = grouped.apply(get_top1000)
然后,我的类可以得到所有这些查询,并为此生成报告。
如何使用python正确实现这一点?您需要:
样本:
names = pd.DataFrame({'year':[2000,2000,2000,2000,2000],
'sex':['M','M','F','F','F'],
'births':[7,8,9,1,2]})
print (names)
births sex year
0 7 M 2000
1 8 M 2000
2 9 F 2000
3 1 F 2000
4 2 F 2000
df = names.groupby(['year', 'sex'])['births']
.nlargest(1)
.reset_index(level=2, drop=True)
.reset_index()
print (df)
year sex births
0 2000 F 9
1 2000 M 8
如果数据中有其他列,请首先使用以下列:
names = pd.DataFrame({'year':[2000,2000,2000,2000,2000],
'sex':['M','M','F','F','F'],
'births':[7,8,9,1,2],
'val':[3,2,4,5,6]})
print (names)
births sex val year
0 7 M 3 2000
1 8 M 2 2000
2 9 F 4 2000
3 1 F 5 2000
4 2 F 6 2000
df = names.set_index('val') \
.groupby(['year', 'sex'])['births'] \
.nlargest(1) \
.reset_index()
print (df)
year sex val births
0 2000 F 4 9
1 2000 M 2 8
如何用python正确地实现这一点?…有什么地方做得不正确?我的类可以得到所有这些查询,并为此生成报告……你想让我们构建你的类吗?这个问题太宽泛了。您没有告诉我们您的模型或需要提取和报告的内容。
names = pd.DataFrame({'year':[2000,2000,2000,2000,2000],
'sex':['M','M','F','F','F'],
'births':[7,8,9,1,2],
'val':[3,2,4,5,6]})
print (names)
births sex val year
0 7 M 3 2000
1 8 M 2 2000
2 9 F 4 2000
3 1 F 5 2000
4 2 F 6 2000
df = names.set_index('val') \
.groupby(['year', 'sex'])['births'] \
.nlargest(1) \
.reset_index()
print (df)
year sex val births
0 2000 F 4 9
1 2000 M 2 8