gpt4 book ai didi

python - 如何通过 Pandas 中特定列的计算添加行

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

我有一个 dtaframe,我想在它的末尾添加 2 行,以指示在数字范围之间有多少个单元格。除了第一列和最后一列之外,我想对所有列都这样做(我有一个包含很多列的大数据框)。例如,我有以下小型数据框:

    start position      A     b    rnd
0 149449305 4 99 88
1 47630133 6 50 10
2 128200594 12 7 600
3 49423101 100 10 8

我想仅在 A 列和 B 列中计算一个数字在 0-9 和 10-100 范围之间的次数,并将其添加到数据框的末尾,范围在“起始位置”列的和,如下所示:

        start position      A     b    rnd
0 149449305 4 99 88
1 47630133 6 50 10
2 128200594 12 7 600
3 49423101 100 10 8
4 0-9 2 1
5 10-100 2 3

我该怎么做(不指示列的名称,而是它们的索引范围,因为我有一个包含许多列的更大的数据框)?

最佳答案

IIUC,使用 pd.cutvalue_counts 获取范围计数,然后我们使用 append

newdf=df.iloc[:,1:-1].apply(lambda x : pd.cut(x,[0,9,100],labels=['0-9','10-100']).value_counts())
df.append(newdf.rename_axis('startposition',axis=0).reset_index())
Out[216]:
A b rnd startposition
0 4 99 88.0 149449305
1 6 50 10.0 47630133
2 12 7 600.0 128200594
3 100 10 8.0 49423101
0 2 3 NaN 10-100
1 2 1 NaN 0-9
df=df.append(newdf.rename_axis('startposition',axis=0).reset_index()).reindex(df.columns,axis=1)
df
Out[217]:
startposition A b rnd
0 149449305 4 99 88.0
1 47630133 6 50 10.0
2 128200594 12 7 600.0
3 49423101 100 10 8.0
0 10-100 2 3 NaN
1 0-9 2 1 NaN

关于python - 如何通过 Pandas 中特定列的计算添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52062951/

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