#  0 读取数据
import pandas as pd
df = pd.read_csv("beijing_tianqi_2018.csv") # 换掉温度后面的后缀
df.loc[:,"bWendu"] = df["bWendu"].str.replace("℃","").astype("int32")
df.loc[:,"yWendu"] = df["yWendu"].str.replace("℃","").astype("int32") # 1 复现 # 只选出3月份的数据用于分析
condition = df["ymd"].str.startswith("2018-03")
# 设置温差
df[condition]["wen_cha"] = df["bWendu"] - df["yWendu"]
# 查看是否修改成功
df[condition].head() D:\Anaconda\lib\site-packages\ipykernel_launcher.py:6: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy # 2 原因
# 发出警告的代码 df[condition]["wen_cha"] = df["bWendu"] - df["yWendu"]
# 相当于: df.get(condition)set(wen_cha),第一步骤get发出了警报
# 链式操作其实就是两个步骤,先get后set,get得到的dataframe可能是view也可能是copy,pandas发出警告 # 核心要诀:pandas的dataframe的修改写操作,只允许在源dataframe上进行,一步到位 # 3 解决办法1
df.loc[condition,"wen_cha"] = df["bWendu"] - df["yWendu"]
df[condition].head() # 4 解决方法2
# 如果需要筛选数据做后续的处理分析,使用copy复制dataframe
df_month3 = df[condition].copy()
df_month3.head()
df_month3["wen_cha"] = df["bWendu"] - df["yWendu"]
df_month3.head()
# 总之,pandas不允许先筛选自dataframe,再进行修改写入
# 要么使用.loc实现一个步骤直接修改源dataframe
# 要么先复制一个子dataframe再一个步骤执行修改

pandas的settingwithWaring报警的更多相关文章

  1. pip源设置 & pandas安装

    pip的官方源python.pypi.org貌似被墙,换用国内安装源 网上的设置方法都是基于Unix的,Windows下的设置略麻烦. 更新..\Lib\site-packages\pip下的cmdo ...

  2. pandas DataFrame 警告(SettingWithCopyWarning)

    转自:https://www.cnblogs.com/pig-fly/p/7875472.html 刚接触python不久,编程也是三脚猫,所以对常用的这几个工具还没有一个好的使用习惯,毕竟程序语言是 ...

  3. pandas数据分析小知识点(一)

    最近工作上,小爬经常需要用python做一些关于excel数据分析的事情,显然,从性能和拓展性的角度出发,使用pandas.numpy是比vba更好的选择.因为pandas能提供诸如SQL的很多查找. ...

  4. pandas如何逐行需改DataFrame

    逐行修改DataFrame而不会报SettingwithCopyWarning警告的方法: df.iloc[行数,df.columns.get_loc(列名)]=new_value 参考:https: ...

  5. pandas基础-Python3

    未完 for examples: example 1: # Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEM ...

  6. 10 Minutes to pandas

    摘要   一.创建对象 二.查看数据 三.选择和设置 四.缺失值处理 五.相关操作 六.聚合 七.重排(Reshaping) 八.时间序列 九.Categorical类型   十.画图      十一 ...

  7. 利用Python进行数据分析(15) pandas基础: 字符串操作

      字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...

  8. 利用Python进行数据分析(10) pandas基础: 处理缺失数据

      数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...

  9. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

随机推荐

  1. lr中用C语言比较两个字符串变量

    以下脚本,定义两个一样的字符数组,对比后,打印出result的值: Action() { int result; char string1[] = "We can see the strin ...

  2. Advanced Message Queuing Protocol ( 1 ) 概述

    The Advanced Message Queuing Protocol (AMQP)是一个标准开放的应用层的消息中间件(Message Oriented Middleware)协议.AMQP定义了 ...

  3. Linux_IPtables防火墙详解

    目录 目录 Iptables Iptables结构 规则表 规则链 iptables指令用法详解 综合案例 SNAT 策略 DNAT 策略 Iptables规则的备份和还原 iptables 练习 I ...

  4. 20191106 Spring Boot官方文档学习(1-2)

    学习内容相关信息 最新版本:2.2.0 CURRENT GA 官网地址 官方文档地址 单页版文档地址 代码生成网址 2.入门 Spring Boot的主要目标是: 为所有Spring开发提供更快且入门 ...

  5. 图解 SQL 里的各种 JOIN

    约定 下文将使用两个数据库表 Table_A 和 Table_B 来进行示例讲解,其结构与数据分别如下: mysql> SELECT * FROM Table_A ORDER BY PK ASC ...

  6. python字符串-方法

    一.1. upper()作用:将字符串中字符转换为大写 In [17]: spam Out[17]: 'hello,world' In [18]: print(spam.upper()) HELLO, ...

  7. BusyBox TFTP使用(转)

    开发板上使用TFTP 帮助信息: BusyBox v1.13.3 (2009-03-25 15:48:45 CST) multi-call binary Usage: tftp [OPTION]... ...

  8. Nginx日志监控 使用 goaccess查看nginx日志

    nginx日志监控 yum install goaccess   安装使用教程 goaccess access.log -o ../html/report.html --real-time-html ...

  9. 华南理工大学“三七互娱杯” D HRY and array

    https://ac.nowcoder.com/acm/contest/874/D 题目大意是给定两个数组A和B 数组的元素可以打乱重新排列 然后求∑ni=1 AiBi 的期望 我是这么理解的: 由于 ...

  10. PHP7中的数据类型(一)计数引用、写时复制,可垃圾回收

    列个简单的表格说明一下: