重点:
dataframe.apply(function,axis)对一行或一列做出一些操作(axis=1则为对某一列进行操作,此时,apply函数每次将dataframe的一行传给function,然后获取返回值,将返回值放入一个series)
python去空格:字符串.strip()

待解决:
dataframe.assign()应该怎么用?

(1)读入数据后先把 城市 那一列城市名中的空格去掉

对一列数据去空格的方法:

def qukong(hang):
return hang['city'].strip()
dataframe['city']=dataframe.apply(qukong,axis=1) # axis=1表示对每一行做相同的操作
dataframe

###dataframe.apply用于对一行或一列做一些相同的操作

(2)调用百度地图API查询各城市经纬度(查询出的结果我们用dict保存)

def p2l(name):
# 1、设置url和3个参数(输出格式,key,要翻译的地址)
url = 'http://api.map.baidu.com/geocoder/v2/'
output = 'json'
ak = 'sXZHPZahdMeK3Gy3uC7ZeRQrVbZDnP1G'
address = quote(name)

# 2、拼接get请求(url?参数1=值1&参数2=值2&参数3=值3)
request = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak

# 3、urlopen发送请求,获得response
response_file = urlopen(request)

# 4、读取response字符串
response_str = response_file.read().decode()

# 5、str转json
response_json = json.loads(response_str)

# 6、读json
lat=response_json['result']['location']['lat']
lng=response_json['result']['location']['lng']

return [lat,lng]

list_place=list(set(dataframe['city']))
dict_loc={}
for elem in list_place:
dict_loc[elem]=p2l(elem)
dict_loc

(3)将查询到的经纬度放入dataframe中
def add_lat(hang):
return dict_loc[hang['city']][0]

def add_lng(hang):
return dict_loc[hang['city']][1]

dataframe['city_lat']=dataframe.apply(add_lat,axis=1)
dataframe['city_lng']=dataframe.apply(add_lng,axis=1)

(4)从dataframe的日期一列中提取出 年、月、日 三个新列
def add_year(hang):
date=hang['date']
tmplist=date.split('/')
return tmplist[0]

def add_month(hang):
date=hang['date']
tmplist=date.split('/')
return tmplist[1]

def add_day(hang):
date=hang['date']
tmplist=date.split('/')
return tmplist[2]

dataframe['year']=dataframe.apply(add_year,axis=1)
dataframe['month']=dataframe.apply(add_month,axis=1)
dataframe['day']=dataframe.apply(add_day,axis=1)

(5)获取星期几
from datetime import datetime,date

dayOfWeek = datetime.now().weekday()
print dayOfWeek

dayOfWeek = datetime.today().weekday()
print dayOfWeek
datetime类的weekday()方法可以获得datetime是星期几,注意weekday() 返回的是0-6是星期一到星期日

pandas dataframe.apply() 实现对某一行/列进行处理获得一个新行/新列的更多相关文章

  1. pandas DataFrame apply()函数(2)

    上一篇pandas DataFrame apply()函数(1)说了如何通过apply函数对DataFrame进行转换,得到一个新的DataFrame. 这篇介绍DataFrame apply()函数 ...

  2. 螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。

    package Day8_06; /*读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右.下.左.上螺旋填入的结果. * 例如读入数字4,5,则输出结果为: * 1 2 ...

  3. pandas DataFrame apply()函数(1)

    之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...

  4. 【C语言】请输入一个n(n<=10)并输出一个n行n列的杨辉三角

    应用二维数组的知识 杨辉三角特点: 1.第一列和对角线的元素全部为1 2.其他元素等于上一行的当前列的值和上一行中当前列前边一列的值之和 #include<stdio.h> #define ...

  5. Mysql 列转行group_concat函数,与行转列

    1.正常情况. SELECT JoinEventIds from nt_mainnum 2.使用group_concat函数 select group_concat(JoinEventIds) fro ...

  6. 编写一个函数,在页面上输出一个N行M列的表格,表格内容填充0~100的随机数字

    function print(n,m){     document.write("<table>");     for(var i=0; i<n; i++){   ...

  7. 编写一段代码,打印一个M行N列的二维数组转置。(交换行和列)

    import edu.princeton.cs.algs4.*; public class No_1_1_13 { public static void main(String[] args) { i ...

  8. 【338】Pandas.DataFrame

    Ref: Pandas Tutorial: DataFrames in Python Ref: pandas.DataFrame Ref: Pandas:DataFrame对象的基础操作 Ref: C ...

  9. pandas.DataFrame的pivot()和unstack()实现行转列

    示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...

随机推荐

  1. BZOJ1074 [SCOI2007]折纸origami

    我们先看每个点可能从哪些点折过来的,2^10枚举对角线是否用到. 然后再模拟折法,查看每个点是否满足要求. 恩,计算几何比较恶心,还好前几天刚写过一道更恶心的计算几何,点类直接拷过来2333. /** ...

  2. CF 272E Dima and Horses 染色,dfs 难度:2

    http://codeforces.com/problemset/problem/272/E 把仇恨关系想象为边, 因为度只能为0,1,2,3,所以有以下几种 0,1 直接放即可 2: 有(1,1), ...

  3. SSRS实现 矩阵列实现动态列

    需求背景:按区域查询店铺的销售量和库存量,然后店铺的数据是动态的.实现类似效果如下图,其中蓝色框是动态的,店铺的数量是不确定的,可能是3个,也可能是20个. 步骤一: 步骤二: 加工后: 最后效果:

  4. 接口测试工具Soapui5.1.2参数化之Properties20150924

    上次用天气预报的来给大家演示了下如何创建项目.测试套件.测试用例的操作,今天演示下如何参数化,废话不多说,跟着操作即可: 1.在一个用例中有两个步骤,我们想将第一个步骤中的响应中的值,传入第二个步骤中 ...

  5. VMwarePlayer虚拟机下centos6的静态IP配置

    1. 把VMwarePlayer生成的网络适配器 VMware Network Adapter VMnet1 设置成自动获取IP地址. 2.在VMwarePlayer中选择对应的虚拟机,点击edit ...

  6. Python PIL : IOError: decoder jpeg not available

    The first thing I check when I got this error was to check if libjpeg was installed. Lets try this s ...

  7. ubuntu遇到的问题

    昨天分辨率在装一个游戏时被更改了,改过之后,怎么都改不过来... 折腾了一下午,在配置文件中/etc/X11/xorg.conf.failsafe,但是网上都是/etc/X11/xorg.conf, ...

  8. SqlServer高级特性--游标

    游标 用途:在数据很多的时候,如果在java代码中进行循环之后再进行更新数据,会造成频繁的连接数据库,耗费性能,所以就可以使用到游标 作用:查询出来的集合直接在SQL中进行遍历在进行更新 DECLAR ...

  9. ASP.NET Word转为PDF

    1.首先安装 Microsoft Office 2007加载项:Microsoft Save as PDF-简体中文版:下载地址: http://download.microsoft.com/down ...

  10. 一个Android开发妹子的找工作心酸史

    阿里:实习二面被KO 1,人生接到的第一个电话面试来自大家都说好的阿里,心情激动,说话颤抖,本以为没有戏,然而第二天接到了二面的电话有点小激动.然后就是被ko了,死的原因很简单,那时候单纯的自己什么都 ...