重点:

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是星期一到星期日

python dataframe取某行某列_pandas dataframe.apply() 实现对某一行/列进行处理获得一个新行/新列...相关推荐

  1. python行转列_pandas.DataFrame中pivot()如何实现行转列的问题(代码)

    本篇文章给大家带来的内容是关于pandas.DataFrame中pivot()如何实现行转列的问题(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 示例: 有如下表需要进行行转 ...

  2. python 根据判断产生新列_pandas DataFrame 根据多列的值做判断,生成新的列值实例...

    环境:Python3.6.4 + pandas 0.22 主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1 ...

  3. python 多条件判断 生成新列_pandas DataFrame 根据多列的值做判断,生成新的列值

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. python dataframe取列名_python – 获取列名在DataFrame中按其值排序

    我有一个庞大的数据框,我想创建一个字典.字典的键将是行的索引,值将是按该行中的值(降序)排序的数据帧的列名列表.考虑以下示例: df= 23 45 12 3 6 45 0.2 1 0.12 0.5 0 ...

  5. python数据框新建一个列并赋值_pandas.DataFrame 根据条件新建列并赋值的方法

    pandas.DataFrame 根据条件新建列并赋值的方法 实例如下所示: import numpy as np import pandas as pd data = {'city': ['Beij ...

  6. python爬取微博热搜榜

    python爬取微博热搜榜 最近应我大学室友得需求,做了一个简单的爬虫案例,先给大家看一下程序运行效果 接下来就是贴出代码了,在这里我会做一些简单说明,对如刚入门的同学可能会有所帮助,这里使用的是py ...

  7. python爬取网易云音乐歌曲

    python爬取网易云歌曲并且保存到本地 打开网易云音乐首页随便打开了一个歌单列表(https://music.163.com/#/playlist?id=924680166) 先贴代码为敬 impo ...

  8. 代码行统计工具:根据命令行输入的指定目录及文件类型进行统计目录或单个文件的代码行数

    #统计指定目录(count_path).指定文件类型文件(file_types)的代码量 import os def count_all_file_code(count_path,file_types ...

  9. python dataframe取一列_pandas取dataframe特定行/列

    1.按列取.按索引/行取.按特定行列取 import numpy as np from pandas import DataFrame import pandas as pd df=DataFrame ...

最新文章

  1. 20190226-利用序列化完成小型记账程序
  2. python和单片机的用处哪个大_用Python控制硬件1-Python控制硬件的几种方式
  3. 送你6份最新开源代码!含NLP、ML、计算机视觉方向(附代码论文)
  4. 皮一皮:还以为女神的眼睛特别好看...
  5. 区块链带来的价值包括哪些_爱链社区干货:区块链技术为冷链物流带来的了那些价值?...
  6. 把sqlserver中存储过程改写到oracle中
  7. sklearn 笔记整理:sklearn.mertics
  8. 1064 Complete Binary Search Tree (30 分)【难度: 一般 / 知识点: 完全二叉搜索树】
  9. 学生成绩管理系统-程序维护
  10. 如何在优雅地Spring 中实现消息的发送和消费 1
  11. Unplugged In Newyork
  12. Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性 1 1.1. 元数据 API 1 1.2. 分布式事务 vs事务中使用 Sav
  13. psp测试电池软件,电玩巴士首测成功-PSP神奇电池恢复砖头与降级
  14. 快速排序c语言实现,快速排序——C语言实现
  15. 计算机专业分类分级,计算机等级分级
  16. XMPP 协议的原理和介绍
  17. 数字后端入行门槛和条件?附入行进阶必读书籍丨建议收藏
  18. 一文看尽深度学习中的生成对抗(GAN)网络
  19. 线性代数学习笔记4-6:矩阵的四个子空间(零空间、列空间、行空间、左零空间)、初等行变换、测验题
  20. JavaScript控制div的移动跟着鼠标一起移动div

热门文章

  1. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)
  2. pyspark性能调优参数
  3. 操作系统学习笔记 第五章:文件管理(王道考研)
  4. 开放神经网络交换(ONNX)工具
  5. 使用现代C++如何避免bugs(下)
  6. CUDA C编程接口技术分析
  7. 2021年大数据ELK(二十五):添加Elasticsearch数据源
  8. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
  9. 2021年大数据Flink(十八):Flink Window操作
  10. 解决虚拟器device support x86 but apk only supports armeabi-v7