Pandas根据日期时间融化数据帧,并填充所有值NaN



我有一个数据帧,包括所有国家/地区,日期时间从"1/22/20"到"2/22/20"。

下面是我的数据框架列。

Country 1/22/20 1/23/20 1/24/20 1/25/20 1/26/20 1/27/20 1/28/20 1/29/20 1/30/20...

我试图融化数据帧,以获得日期时间和国家/地区的值,如

US 1/25/20 28

但所有定义为NaN的值

Australia   2020-01-22  NaN

我该怎么修?

这是我的代码片段

def meltDataFrame(df,id_vars,value_vars,var_name,value_name):
return pd.melt(df,
id_vars= id_vars,
value_vars = value_vars,
var_name= var_name,
value_name= value_name)
data_df_melt = meltDataFrame(data_df.reset_index(),
['Country'],pd.date_range('1/22/20', '3/18/20', freq='D'),'Date','Total_Count')

问题是列名不是日期时间。

因此,将所有列名转换为不带第一个到日期时间:

df.columns = df.columns[:1].tolist() + pd.to_datetime(df.columns[1:]).tolist()

然后融化。

样本

print (df)
Country  1/22/20  1/23/20  1/24/20
0  Australia       11       42       53
df.columns = df.columns[:1].tolist() + pd.to_datetime(df.columns[1:]).tolist()
print (df)
Country  2020-01-22 00:00:00  2020-01-23 00:00:00  2020-01-24 00:00:00
0  Australia                   11                   42                   53

最新更新