我有一个包含 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) 我有一个包含多年数据的 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' 对象不可迭代
我该如何继续?
我正在使用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”列中提取。
但是,由于我没有等高线图可从中提取颜色图,因此我不知道如何链接表格图例和地图的颜色。