Pandas 程序在循环中交叉制表符
我试图在jupyter笔记本的背景下,在pandas中发布一系列交叉标签,如下所示:Pandas 程序在循环中交叉制表符,pandas,jupyter,crosstab,Pandas,Jupyter,Crosstab,我试图在jupyter笔记本的背景下,在pandas中发布一系列交叉标签,如下所示: def crosstab_all(dataset,attributelist): for k in attributelist: print('k',k) pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total") attri
def crosstab_all(dataset,attributelist):
for k in attributelist:
print('k',k)
pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total")
attributelist=["has_closing_date","has_address",'has_price','has_listing_date','has_contract_dates','has_tsp','has_susan','has_sell_side','has_buy_side','has_both_sides','has_beth','has_agent','has_admin','has_closing_tsp','has_key_stages']
crosstab_all(dataset,attributelist)
def crosstab_all(dataset,attributelist):
for k in attributelist:
xdf=pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total")
print('xdf',xdf)
print('') # for spacing
attributelist=["has_closing_date","has_address",'has_price','has_listing_date','has_contract_dates','has_tsp','has_susan','has_sell_side','has_buy_side','has_both_sides','has_beth','has_agent','has_admin','has_closing_tsp','has_key_stages']
crosstab_all(dataset,attributelist) # dataset is a dataframe
我发现如果我这样做:
k="has_closing_date"
pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total")
。。。它会起作用的。问题似乎是连续运行交叉表函数调用。例如,立即连续使用两个交叉表命令将失败。我怀疑问题不在于crosstab命令本身,而在于生成多个jupyter窗口所需的额外步骤
无论如何,我很感激任何关于如何使这项工作有效的建议。好的,我找到了一些有效的方法。此解决方案不会生成单独的窗口,并且会丢失一些格式,但我了解到crosstab会返回一个数据帧,因此您可以直接打印它,如下所示:
def crosstab_all(dataset,attributelist):
for k in attributelist:
print('k',k)
pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total")
attributelist=["has_closing_date","has_address",'has_price','has_listing_date','has_contract_dates','has_tsp','has_susan','has_sell_side','has_buy_side','has_both_sides','has_beth','has_agent','has_admin','has_closing_tsp','has_key_stages']
crosstab_all(dataset,attributelist)
def crosstab_all(dataset,attributelist):
for k in attributelist:
xdf=pd.crosstab(dataset[k],dataset["successfulmatch"], normalize=True, margins=True, margins_name="Total")
print('xdf',xdf)
print('') # for spacing
attributelist=["has_closing_date","has_address",'has_price','has_listing_date','has_contract_dates','has_tsp','has_susan','has_sell_side','has_buy_side','has_both_sides','has_beth','has_agent','has_admin','has_closing_tsp','has_key_stages']
crosstab_all(dataset,attributelist) # dataset is a dataframe
这将在每次循环中返回一个未格式化的xtab