gpt4 book ai didi

pandas - "transpose" Pandas 系列

转载 作者:行者123 更新时间:2023-12-02 09:19:54 25 4
gpt4 key购买 nike

我有一个带有 ID 列和一些功能列的 DataFrame。我想查看每个列值有多少个唯一 ID 的描述。

以下代码有效,但我想知道是否有比 to_frame().unstack().unstack() 更好的方法转置 .describe() 的行系列结果到 DataFrame,其中列是百分位数、最大值、最小值 ...

def unique_ids(df):
rows = []
for col in sorted(c for c in df.columns if c != id_col):
v = df.groupby(col)[id_col].nunique().describe()
v = v.to_frame().unstack().unstack() # Transpose
v.index = [col]
rows.append(v)

return pd.concat(rows)

最佳答案

看来你需要改变:

v = v.to_frame().unstack().unstack()


v = v.to_frame().T

或者也可以 transpose最后 DataFrame , 还添加了 rename来自 col :
df = pd.DataFrame({'ID':[1,1,3],
'E':[4,5,5],
'C':[7,8,9]})

print (df)
C E ID
0 7 4 1
1 8 5 1
2 9 5 3

def unique_ids(df):
rows = []
id_col = 'ID'
for col in sorted(c for c in df.columns if c != id_col):
v = df.groupby(col)[id_col].nunique().describe().rename(col)
rows.append(v)
return pd.concat(rows, axis=1).T

print (unique_ids(df))
count mean std min 25% 50% 75% max
C 3.0 1.0 0.000000 1.0 1.00 1.0 1.00 1.0
E 2.0 1.5 0.707107 1.0 1.25 1.5 1.75 2.0

关于pandas - "transpose" Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43517338/

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