Python pd.series更改列的值
我正在尝试从包含以下内容的csv创建日历热图 降雨值(VM)和日期(ISTANTE) 在网上搜索我写了以下代码: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
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'])