在DataFrame列中设置最大值

2024-04-23 16:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在panda dataframe中有以下数据点:

DateTime                Data
2017-11-21 18:54:31     1
2017-11-22 02:26:48     2
2017-11-22 10:19:44     3
2017-11-22 15:11:28     6
2017-11-22 23:21:58     7
2017-11-28 14:28:28    28
2017-11-28 14:36:40     0
2017-11-28 14:59:48     1

我想应用一个函数将所有大于1的数据值转换为1: 有没有一种方法可以将以下两个lambda函数组合成一个函数(像else语句一样)?在

^{pr2}$

期望的最终结果:

^{3}$

Tags: 数据方法lambda函数dataframedatadatetime语句
2条回答

带有np.clip-

df['Data'] = np.clip(df.Data.values, a_min=None, a_max=1)
df

              DateTime  Data
0  2017-11-21 18:54:31     1
1  2017-11-22 02:26:48     1
2  2017-11-22 10:19:44     1
3  2017-11-22 15:11:28     1
4  2017-11-22 23:21:58     1
5  2017-11-28 14:28:28     1
6  2017-11-28 14:36:40     0
7  2017-11-28 14:59:48     1

传递a_min=None不指定下限。在

您可以使用^{}

df['Data'] = df['Data'].clip_upper(1)

或者使用^{}(^{cd3>})作为布尔掩码,如果没有负值,则转换为^{cd4>}:

^{pr2}$

但是如果需要使用列表理解(在更大的数据框架中应该是更慢的):

^{pr3}$

计时

^{pr4}$

相关问题 更多 >