gpt4 book ai didi

python 循环中的交叉表函数

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:09 24 4
gpt4 key购买 nike

我在 python 中工作了一段时间,但陷入了简单的问题。我必须为具有相同 ID 变量(masteruserid)的不同变量运行交叉表函数

pd.crosstab(data['MasterUserId'],visittime_cat)
pd.crosstab(data['MasterUserId'],week_cat)

现在我想做同样的事情大约 7-8 次。我不想递归地调用交叉表函数,而是想放入循环并为每次迭代生成交叉表数据集。我尝试过,但没有成功

def cross_tab(id_col,field):
col_names=['visittime_cat','week_cat','var3','var4']
for i in col_names:
'crosstab_{ }'.format(i)=pd.crosstab(id_col,i)

我想生成诸如 crosstab_visittime_cat、crosstab_week_cat 或 crosstab_1、crosstab_2 等数据集。

最佳答案

我可以建议将数据集存储在字典中吗?

def cross_tab(data_frame, id_col):
col_names=['visittime_cat','week_cat','var3','var4']
datasets = {}
for i in col_names:
datasets['crosstab_{}'.format(i)] = pd.crosstab(data_frame[id_col], data_frame[i])
return datasets

使用虚构数据集进行测试

import numpy as np
import pandas as pd

data = pd.DataFrame({'MasterUserId': ['one', 'one', 'two', 'three'] * 6,
'visittime_cat': ['A', 'B', 'C'] * 8,
'week_cat': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
'var3': np.random.randn(24),
'var4': np.random.randn(24)})

storage = cross_tab(data, "MasterUserId")

storage.keys()
['crosstab_week_cat', 'crosstab_var4', 'crosstab_visittime_cat', 'crosstab_var3']

storage['crosstab_week_cat']
week_cat bar foo
MasterUserId
one 6 6
three 4 2
two 2 4

[3 rows x 2 columns]

关于python 循环中的交叉表函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com