小编Mar*_*tte的帖子

根据确切日期按季节对数据进行分组

我有一个包含 4 年数据的 csv 文件,我试图将 4 年中每个季节的数据分组,换言之,我只需要将我的整个数据汇总并绘制成 4 个季节。看看我的数据文件:

timestamp,heure,lat,lon,impact,type
2006-01-01 00:00:00,13:58:43,33.837,-9.205,10.3,1
2006-01-02 00:00:00,00:07:28,34.5293,-10.2384,17.7,1
2007-02-01 00:00:00,23:01:03,35.0617,-1.435,-17.1,2
2007-02-02 00:00:00,01:14:29,36.5685,0.9043,36.8,1
2008-01-01 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
2008-01-02 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
....
2011-12-31 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出:

winter     (the mean value of impacts)
summer     (the mean value of impacts)
autumn      ....
spring      .....
Run Code Online (Sandbox Code Playgroud)

其实我试过这个代码:

names =["timestamp","heure","lat","lon","impact","type"]
data = pd.read_csv('flash.txt',names=names, parse_dates=['timestamp'],index_col=['timestamp'], dayfirst=True)

spring = range(80, 172)
summer = range(172, 264)
fall = range(264, 355)

def season(x):
    if x in spring:
       return 'Spring'
    if x in summer:
       return 'Summer'
    if x in fall: …
Run Code Online (Sandbox Code Playgroud)

python-2.7 pandas pandas-groupby

5
推荐指数
1
解决办法
2852
查看次数

如何获取日期时间对象的最大值和最小值

我有一个包含多年数据的 csv 文件,我需要计算两个日期(最大日期和最小日期)之间的差异,所以我相信我应该提取最大日期和最小日期。

这是我的数据:

timestamp,heure,lat,lon,impact,type
2006-01-01 00:00:00,13:58:43,33.837,-9.205,10.3,1
2006-01-02 00:00:00,00:07:28,34.5293,-10.2384,17.7,1
2007-02-01 00:00:00,23:01:03,35.0617,-1.435,-17.1,2
2007-02-02 00:00:00,01:14:29,36.5685,0.9043,36.8,1
....
2011-12-31 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
Run Code Online (Sandbox Code Playgroud)

我在我的代码中按如下方式进行:

 W=np.loadtxt(dataFile,delimiter=',',dtype={'names': ('datum','timestamp','lat','lon','amp','ty'),
                            'formats':('S10',     'S8'   ,'f4' ,'f4' ,'f4','S3' )})

 day = datetime.strptime(W['datum'][0],'%Y-%m-%d')
 time=[]
 for i in range(W.size):
 timestamp = datetime.strptime(W['datum'][i]+' '+W['timestamp'][i],'%Y-%m-%d %H:%M:%S')
 Tempsfinal = max(timestamp)
 Tempsinitial = min(timestamp)
 interval=int((Tempsfinal- Tempsinitial)/6)
Run Code Online (Sandbox Code Playgroud)

所以,这样做我得到了错误:

datetime.datetime' 对象不可迭代

我该如何继续?

datetime strptime python-2.7

5
推荐指数
1
解决办法
1万
查看次数

如何为Geopandas图制作表格图例

我正在使用geopandas绘制一个Choropleth地图,我需要绘制一个定制的表格图例。这个问题的答案显示了如何获取轮廓图的表格图例。我在下面的代码中使用它:

import pandas as pd
import pysal as ps
import geopandas as gp
import numpy as np
import matplotlib.pyplot as plt

pth = 'outcom.shp'
tracts = gp.GeoDataFrame.from_file(pth)
ax = tracts.plot(column='Density', scheme='QUANTILES')

valeur = np.array([.1,.45,.7])
text=[["Faible","Ng<1,5" ],["Moyenne","1,5<Ng<2,5"],[u"Elevee", "Ng>2,5"]]
colLabels = ["Exposition", u"Densite"]
tab = ax.table(cellText=text, colLabels=colLabels, colWidths = [0.2,0.2],    loc='lower right', cellColours=plt.cm.hot_r(np.c_[valeur,valeur]))
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果: 在此处输入图片说明

因此,基本上,如您所见,地图和表格中的类颜色之间没有任何联系。我需要具有地图上所示表格中的确切颜色。图例中显示的“ NG值”应从我正在绘制的“ DENSITY”列中提取。

但是,由于我没有等高线图可从中提取颜色图,因此我不知道如何链接表格图例和地图的颜色。

matplotlib python-2.7 geopandas

0
推荐指数
1
解决办法
1379
查看次数