【问题标题】:Creating new column in python pandas df as countif in excel在python pandas df中创建新列作为excel中的countif
【发布时间】:2021-03-19 04:51:40
【问题描述】:

我有这样的数据

我想添加一个新列,如下所示

那么最终的数据将如下所示

我如何在 python pandas 中做到这一点?寻求您的支持

【问题讨论】:

  • 花时间以文本格式提供实际数据。

标签: python-3.x pandas dataframe pandas-groupby


【解决方案1】:

这是一个最小的例子(我没有数据,所以我创建了一个数据框)

import numpy as np
import pandas as pd

size = 10
df = pd.DataFrame({"2020-01-{:02d}".format(k): np.random.randn(size) for k in range(1, 4)})

数据框看起来像

   2020-01-01  2020-01-02  2020-01-03
0   -0.100633   -0.955389   -1.249950
1    0.178421   -0.175384    0.935416
2    0.600968   -0.773636   -1.186054
3   -0.147984   -0.505044   -0.615161
4   -0.627641   -0.409140    1.607050
5    0.855091    0.048863    1.214041
6   -0.108215    0.112185   -1.128229
7   -0.194756    0.486348    2.650181
8    1.464501   -0.530590    1.528327
9    0.248294    0.991100    0.416958

要计算值,您可以使用掩码作为

df.loc[:, "counts"] = df[df > 0.08].count(axis=1)

然后你得到

   2020-01-01  2020-01-02  2020-01-03  counts
0   -0.100633   -0.955389   -1.249950       0
1    0.178421   -0.175384    0.935416       2
2    0.600968   -0.773636   -1.186054       1
3   -0.147984   -0.505044   -0.615161       0
4   -0.627641   -0.409140    1.607050       1
5    0.855091    0.048863    1.214041       2
6   -0.108215    0.112185   -1.128229       1
7   -0.194756    0.486348    2.650181       2
8    1.464501   -0.530590    1.528327       2
9    0.248294    0.991100    0.416958       3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2023-01-30
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2015-12-08
    • 2020-01-19
    相关资源
    最近更新 更多