口味纯正营养多 发表于 2020-5-13 21:43:11

各位大佬好,一个关于求CSV文件中平均数的问题

我找到了一组dateset是世界各国的气温,我找到的数据组是精确到每一个月的,但是我要每一年的各国气温的平均值,请问各位大佬我应该用什么方法识别csv中的日期然后让他自动求每一年的平均呢,提前感谢来帮忙的鱼油们了!!!!{:10_266:}{:10_266:}{:10_266:}

Twilight6 发表于 2020-5-13 21:56:33

本帖最后由 Twilight6 于 2020-5-14 09:26 编辑

csv文件的日期和温度应该是分好的吧,看看文件的日期在第几列,温度在第几列
用numpy模块的loadtxt读取文件,然后把这一列全部读取出来
例如:
# 打开文件,将数据转化为ndarry类型数组
file = np.loadtxt(file_name,delimiter=',',dtype=str,encoding='utf-8')
# 假设日期在第一列
year = file[:,0]   # 提取所有行的第零列
# 假设温度在第二列
T = file[:,1] # 提取所有行的第二列

然后提取出来的数据用
T.mean(axis = 0) # 计算温度每一行的平均值

我也是刚刚学numpy这里我能想到的思路就是这样了


听风夜雨 发表于 2020-5-14 09:42:28

本帖最后由 听风夜雨 于 2020-5-14 09:43 编辑

用pandas 可能会比较简单
先导入数据
df=pd.read_csv(filename)
然后做成数据透视表
用pd.pivot_table
把行索引index设置为国家
列索引columns设置为日期
然后value设置为温度
然后调用mean的方法就可以了
pd.pivot_tabled的用法百度一下就可以了,也很简单
页: [1]
查看完整版本: 各位大佬好,一个关于求CSV文件中平均数的问题