【发布时间】:2021-07-13 16:23:42
【问题描述】:
我正在使用 pandas 数据框模拟数据,代码如下:
import pandas as pd
from random import randrange
df = pd.DataFrame()
df['YYYYMM'] = pd.Series(3*list(pd.date_range(start="1/1/2019", end="12/1/2020", freq="MS")))
df['Regions'] = pd.Series(['NA', 'EMEA', 'APAC']).repeat(24).reset_index()[0]
df_emea = df[df['Regions'] == 'EMEA'].copy()
df_emea["YYYYMM"] = df_emea["YYYYMM"].repeat(3).reset_index()['YYYYMM']
df_emea["country"] = pd.Series(24*['UK', 'Germany', 'France']).reset_index()[0]
df_na = df[df['Regions'] == 'NA'].copy()
df_na["YYYYMM"] = df_na["YYYYMM"].repeat(2).reset_index()['YYYYMM']
df_na["Country"] = pd.Series(24*['Canada', 'USA']).reset_index()[0]
df_apac = df[df['Regions'] == 'APAC'].copy()
df_apac["YYYYMM"] = df_apac["YYYYMM"].repeat(2).reset_index()['YYYYMM']
df_apac["Country"] = pd.Series(24*['China', 'Japan']).reset_index()[0]
除了df_apac,一切正常。不知何故,我在Country 列中有None,在YYYYMM 列中有NaT:
有人可以解释为什么会这样吗?
【问题讨论】:
-
从您的第四行代码中删除
freq="MS"参数。 -
@etch_45,感谢您的评论,我为什么要删除它?它代表月份开始。
-
有趣。这看起来像一个类似于 one 不久前的错误,它还涉及
df.reset_index和数据损坏。