Python pd.series更改列的值

Python pd.series更改列的值,python,pandas,Python,Pandas,我正在尝试从包含以下内容的csv创建日历热图 降雨值(VM)和日期(ISTANTE) 在网上搜索我写了以下代码: import pandas as pd import calmap import matplotlib.pyplot as plt df = pd.read_csv('D:\\GIS\\Dati\\Meteo_arpav\\stazione_forno.csv') df['DateTime'] = df['ISTANTE'].apply(lambda x: pd.to_dateti

我正在尝试从包含以下内容的csv创建日历热图 降雨值(VM)和日期(ISTANTE)

在网上搜索我写了以下代码:

import pandas as pd
import calmap
import matplotlib.pyplot as plt

df = pd.read_csv('D:\\GIS\\Dati\\Meteo_arpav\\stazione_forno.csv')
df['DateTime'] = df['ISTANTE'].apply(lambda x: pd.to_datetime(str(x), format='%Y%m%d%H%M'))
events = pd.Series((df['VM']), index=df['DateTime'])
a=calmap.calendarplot(events)
plt.show(a)
它起作用了,但是当我创建
系列时
VM的所有值都变成了
NaN
。 打印(事件)这是结果:

DateTime
2016-01-01   NaN
2016-01-02   NaN
2016-01-03   NaN
2016-01-04   NaN
2016-01-05   NaN
2016-01-06   NaN
2016-01-07   NaN
2016-01-08   NaN
2016-01-09   NaN
这样,日历热图就会显示为空。有什么想法吗?

似乎您需要创建
系列

df['DateTime'] = pd.to_datetime(df['ISTANTE'], format='%Y%m%d%H%M')
events = df.set_index('DateTime')['VM']
print (events)
DateTime
2016-01-01    0.0
2016-01-02    0.2
2016-01-03    0.6
2016-01-04    1.8
Name: VM, dtype: float64
不工作的原因:

events = pd.Series((df['VM']), index=df['DateTime'])

是数据对齐。列
VM
Series
)的索引要按
DatetimeIndex
对齐,但值不匹配,因此结果是
NaN
s.

很好。这是正确的答案!!我认为索引是用
events=pd.Series((df['VM'])、index=df['DateTime'])创建的。
。非常感谢@jezrael
events = pd.Series((df['VM']), index=df['DateTime'])