gpt4 book ai didi

python - 创建一个数据透视表,其中我的值是我列的计数

转载 作者:太空宇宙 更新时间:2023-11-04 09:47:23 25 4
gpt4 key购买 nike

我有我的 dtatframe 并想显示数据,其中数据透视表中的值只是字符串的计数,这些字符串是我在数据透视表中的列:

我的 df 示例:

trading_book    state
A Traded Away
B Dealer Reject
C Dealer Reject
A Dealer Reject
B Dealer Reject
C Dealer Reject
A Dealer Reject
D Dealer Reject
D Dealer Reject
E Dealer Reject

期望的结果:

    Traded Away Dealer Reject   Done
Book
A 1 2 0
B 0 2 0
C 0 2 0
D 0 2 0
E 0 1 0

当我尝试使用以下代码时:

Count_Row = df.shape[0] #gives number of row count
Count_Col = df.shape[1] #gives number of col count
df_Sample = df[['trading_book','state']].head(Count_Row-1)
display(df_Sample)

display(pd.pivot_table(
df_Sample,
index=['trading_book'],
columns=['state'],
values='state',
aggfunc='count'
))

我只得到显示的交易账本

values 和 aggfunc 参数需要做什么?

最佳答案

更正您的 pivot_table 代码:

v = df.pivot_table(
index='trading_book',
columns='state',
aggfunc='size',
fill_value=0
)

只要指定 aggfunc='size' 参数,就无需指定 values 参数。接下来,要获得准确的输出,您需要沿着列重新索引您的数据框:

v.reindex(columns=np.append(df.state.unique(), 'Done'), fill_value=0)

state Traded Away Dealer Reject Done
trading_book
A 1 2 0
B 0 2 0
C 0 2 0
D 0 2 0
E 0 1 0

或者,在列表中指定您想要的新列:

cols = ['Done', ...]
v.assign(**dict.fromkeys(cols, 0))

state Dealer Reject Traded Away Done
trading_book
A 2 1 0
B 2 0 0
C 2 0 0
D 2 0 0
E 1 0 0

关于python - 创建一个数据透视表,其中我的值是我列的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49228728/

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