根据条件在熊猫数据框中的多行中设置值

用户名
   temperature  precipitation
0         1.26         0.0279
1         1.64         0.0330
2         1.98         0.0381
3         2.31         0.0406
4         2.61         0.0406
5         2.89         0.0381
6         3.15         0.0356
7         3.51         0.0305
8         3.78         0.0305
9         3.78         0.0305

另外,在上述数据帧,我要创建一个新的列C,其中的值是1 4行后precipitation小于0.04 IFFprecipitation在这些4行是小于0.04。我尝试使用,pd.where但这仅设置当前行的值。

预期产量:

在此处输入图片说明

赞欣

IIUC,以下;

创建列“ C”并填充nan

df['C'] = np.nan

计算'C_列中'降水'<0.04的连续出现:

def rolling_count(val):
    if val < 0.04:
        rolling_count.count +=1
    else:
        rolling_count.count = 0
    return rolling_count.count
rolling_count.count = 0

df['C_'] = df['precipitation'].apply(rolling_count)

用“ 1”填充列“ C”,在其中找到第一个“ 4”,然后向后填充其他3:

df.loc[df[df['C_'] == 4].head(1).index.item(), 'C'] = 1
df['C'] = df['C'].fillna(method = 'bfill', limit = 3)
df['C'] = df['C'].fillna(0)
df['C'] = df['C'].astype(int)

df

   temperature  precipitation  C  C_
0         1.26         0.0279  0   1
1         1.64         0.0330  0   2
2         1.98         0.0381  0   3
3         2.31         0.0406  0   0
4         2.61         0.0406  0   0
5         2.89         0.0381  1   1
6         3.15         0.0356  1   2
7         3.51         0.0305  1   3
8         3.78         0.0305  1   4
9         3.78         0.0305  0   5

注意; 此结果与您的示例显示的结果不同,但是IIUC您需要找到低于0.04的4个连续行并填充“ C”。问题是您的“ C”中的“ 0.0406”值填充为“ 1”,且不低于0.04。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:根据条件将数据框中的值复制到多行

将值设置为熊猫数据框中的多行

根据熊猫数据框中的条件为列分配值

根据多种条件替换熊猫数据框中的值

熊猫数据框根据条件更改列中的值

根据条件屏蔽熊猫数据框中的值

如何根据条件替换熊猫数据框中的值?

根据条件替换熊猫数据框列中的值

根据熊猫数据框中的条件将单元格拆分/分解为多行

熊猫数据框 - 根据条件设置列值

如何根据熊猫数据框数据透视表中的条件获取列中的值?

大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

熊猫:根据条件将数据框中的值替换为另一个数据框中的值

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

如何根据熊猫数据框中的条件移动列中的值

根据熊猫数据框中的条件获取最大值和最小值

根据条件对数据框中的多行字典求和

根据熊猫数据框中的条件从列表中删除元素

根据熊猫数据框中的条件从列表中删除元素

熊猫-根据特定条件查找数据框中是否存在值

如何根据条件在熊猫数据框中的任何位置替换值?

如何根据条件为熊猫数据框中的行组分配唯一值?

如何根据条件用列名替换熊猫数据框中的值?

如何根据熊猫中的条件为数据框的子集的列分配值?

如何根据熊猫数据框中的字符串值使用 where 条件?

根据熊猫数据框中其他列的条件和值创建新列

熊猫-根据条件更改数据框中的单元格值

如何根据“标识符列”和熊猫数据框中的附加条件替换值?

熊猫根据条件替换数据框值