pandas map用法 drop用法 dropna用法

这是一个pandas处理csv的demo。
原数据集地址:https://data.world/rajanand/rainfall-in-india

import sys
import pandas as pd

infile = sys.argv[1]
outfile = sys.argv[2]
actions = 10

df = pd.read_csv(infile,encoding="utf-8")
df = df.drop(['YEAR','Jan-Feb','Mar-May','Jun-Sep','Oct-Dec'],axis=1)
df = df.dropna(how='any')

#####################################################
df = df.groupby(['SUBDIVISION'])

df2 = pd.DataFrame()
for gpname,group in df:
	if df.size()[gpname] == 115:
		df2 = pd.concat([df2,group],ignore_index=True)
		actions -= 1
		if actions == 0:
			break

mymax = df2.iloc[:,1:13].max().max()
mymin = 0
df2.iloc[:,1:14] = (df2.iloc[:,1:14]-mymin)/(mymax-mymin)
print(df2.iloc[1:,1:13].max().max())

gps = df2.groupby(['SUBDIVISION'])
dfavg = pd.DataFrame()
dfavg['avgmonth'] = gps.mean()['ANNUAL'].map(lambda x:x/12)
dfavg.to_csv('rainfall-avg.csv',index=False)

#print(actions)
df2 = df2.drop(['SUBDIVISION','ANNUAL'],axis=1)
####################################################
#gps = df.groupby(['SUBDIVISION'])
#df2 = pd.DataFrame()
#for gpname,group in gps:
#	dftmp = pd.DataFrame()
#	for i in range(0,len(group)):
#		#print(group.iloc[i-1:i][:])
#		dftmp2 = group.iloc[i-1:i][:].drop(['SUBDIVISION'],axis=1)
#		print(dftmp2)
#		dftmp = pd.concat([dftmp,dftmp2],axis=1,ignore_index=True)
#	#print(dftmp)
#	df2 = pd.concat([df2,dftmp],axis=0,ignore_index=True)
########################################################
df2.to_csv(outfile,index=False)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值