首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Dataframe中指定的行将零值转换为NaN

为Dataframe中指定的行将零值转换为NaN
EN

Stack Overflow用户
提问于 2022-07-04 16:05:12
回答 2查看 42关注 0票数 0

我有一份联合数据,其中载有1979年至2020年期间来自两个来源的每日降水量:

代码语言:javascript
复制
          precip_1   precip
time                     
1973-01-04  0.0       NaN
1973-01-07  0.0       NaN
1973-01-08  0.0       NaN
1973-01-12  0.0       NaN
1973-01-17  0.0       NaN
        ...       ...
2020-12-27  NaN  0.434374
2020-12-28  NaN  0.923621
2020-12-29  NaN  0.012130
2020-12-30  NaN  0.064116
2020-12-31  NaN  2.041316

[16978 rows x 2 columns]

我要做的是将6-8个月中的任何零值设置为NaN,但将任何零值保留在这些月份之外。据我所知,我可以使用以下功能来完成此操作:

代码语言:javascript
复制
df1 = df.replace(0, nan)

但是,我似乎不明白的是,如何在dataframe中只选择特定的月份。有什么想法吗?

非常感谢

EN

回答 2

Stack Overflow用户

发布于 2022-07-04 17:14:41

您可以尝试将时间列转换为DateTime对象,以便轻松地比较月份。完成此操作后,您可以使用apply函数和lambda函数比较日期,并按照您的描述更改它们。希望这能有所帮助!

代码语言:javascript
复制
import pandas as pd
import datetime
data = {'time':['2020-01-18','2020-02-29','2020-6-28','2020-7-27'],'precip_1':[0.434374,0.923621,0,0]}
df = pd.DataFrame(data)
df['time'] = df['time'].apply(lambda x: datetime.datetime.strptime(x, '%Y-%m-%d'))
df['precip_1'] = df.apply(lambda row: 'nan' if (row.time.month > 5 and row.time.month < 8) and row.precip_1 == 0 else row.precip_1,axis=1)
票数 0
EN

Stack Overflow用户

发布于 2022-07-04 17:56:53

“替换”工作得很好,但是它不能很好地处理来自其他列的逻辑,因此对于.loc accessor来说,这实际上是一个更好的情况。

代码语言:javascript
复制
df = pd.DataFrame(
    [
        ['2020-06-05', 1],  # > 0 value, don't change
        ['2020-06-05', 0],  # 0 value, change to nan
        ['2020-12-05', 1],
        ['2020-12-05', 0],  # wrong month, don't change
    ],
    columns=['date', 'precip']
)
df.date = pd.to_datetime(df.date)

df.loc[(df['date'].dt.month.between(6, 8)) & (df['precip'] == 0), 'precip'] = np.nan

输出:

代码语言:javascript
复制
        date  precip
0 2020-06-05     1.0
1 2020-06-05     NaN
2 2020-12-05     1.0
3 2020-12-05     0.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72859459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档