熊猫时区转换

问题:

我有一个数据框作为示例:

df:

a   b                      c      d
1   2020-01-20 01:00:00    32     jajskdn
2   NaN                    23     2aksn
3   2020-05-20 02:00:00    asjn   sdn
4   NaN                    sd     cas
7   NaN                    nf     cka

I m trying to apply tz_convert as below

df[b] = df[b].dt.tz_convert['America/New_York']

I'm getting below error as we have NaN values in the dataframe:

Attribute Error: 'NoneType' object has no attribute 'tz_convert'

如何通过处理空值解决以上问题?

评论
流泪淂心碎
流泪淂心碎

您可以使用以下命令从数据框中删除nan行:

    df = df.dropna()
点赞
评论
简暄和
简暄和

您可以尝试以下方法:

# just choose the non-null rows first
df1 = df.loc[df['b'].notna()]

df1['b'] = pd.to_datetime(df1['b']).dt.tz_localize('UTC').dt.tz_convert('America/New_York')

# combining it again with null/NaN value rows to get the converted final df
df_converted = pd.concat([df1, df.loc[df['b'].isna()]]).sort_values(['a'])

输出:

   a                          b     c        d
0  1  2020-01-19 20:00:00-05:00    32  jajskdn
1  2                        NaN    23    2aksn
2  3  2020-05-19 22:00:00-04:00  asjn      sdn
3  4                        NaN   sdn      cas
4  7                        NaN    nf      cka

我们需要将其明确转换为日期时间字段,并在将其转换为其他时区之前对其进行本地化。

希望这可以帮助。

点赞
评论