pandas设置值-【老鱼学pandas】

本节主要讲述如何根据上篇博客中选择出相应的数据之后,对其中的数据进行修改。

对某个值进行修改

例如,我们想对数据集中第2行第2列的数据进行修改:

import pandas as pd
import numpy as np
dates = pd.date_range("2017-01-08", periods=6)
data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
print("data:")
print(data)

# 对第2行第2列的数据进行修改
data.iloc[2, 2] = 111

print("修改后的数据为:")
print(data)

输出为:

data:
             A   B   C   D
2017-01-08   0   1   2   3
2017-01-09   4   5   6   7
2017-01-10   8   9  10  11
2017-01-11  12  13  14  15
2017-01-12  16  17  18  19
2017-01-13  20  21  22  23
修改后的数据为:
             A   B    C   D
2017-01-08   0   1    2   3
2017-01-09   4   5    6   7
2017-01-10   8   9  111  11
2017-01-11  12  13   14  15
2017-01-12  16  17   18  19
2017-01-13  20  21   22  23

根据筛选条件设置值

比如,我们想对数据集中B列大于14的数据设置为14值,类似SQL中的:

update table set B = 14 where B>14

具体实现为:

import pandas as pd
import numpy as np
dates = pd.date_range("2017-01-08", periods=6)
data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
print("data:")
print(data)

# 把B列中大于14的数设置为14
data.B[data.B>14] = 14

print("修改后的数据为:")
print(data)

输出为:

data:
             A   B   C   D
2017-01-08   0   1   2   3
2017-01-09   4   5   6   7
2017-01-10   8   9  10  11
2017-01-11  12  13  14  15
2017-01-12  16  17  18  19
2017-01-13  20  21  22  23
修改后的数据为:
             A   B   C   D
2017-01-08   0   1   2   3
2017-01-09   4   5   6   7
2017-01-10   8   9  10  11
2017-01-11  12  13  14  15
2017-01-12  16  14  18  19
2017-01-13  20  14  22  23

增加一列

增加一列空列数据:

import pandas as pd
import numpy as np
dates = pd.date_range("2017-01-08", periods=6)
data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
print("data:")
print(data)

data["E"] = np.nan

print("修改后的数据为:")
print(data)

输出为:

data:
             A   B   C   D
2017-01-08   0   1   2   3
2017-01-09   4   5   6   7
2017-01-10   8   9  10  11
2017-01-11  12  13  14  15
2017-01-12  16  17  18  19
2017-01-13  20  21  22  23
修改后的数据为:
             A   B   C   D   E
2017-01-08   0   1   2   3 NaN
2017-01-09   4   5   6   7 NaN
2017-01-10   8   9  10  11 NaN
2017-01-11  12  13  14  15 NaN
2017-01-12  16  17  18  19 NaN
2017-01-13  20  21  22  23 NaN

这里,我们通过

data["E"] = np.nan

对数据集增加了一列空的数据。

另外,这里不能使用data.E=np.nan的方式对数据集增加一列。

当然,我们也可以把某列的数据增加到一列中:

import pandas as pd
import numpy as np
dates = pd.date_range("2017-01-08", periods=6)
data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
print("data:")
print(data)

data["E"] = np.arange(6)

print("修改后的数据为:")
print(data)

输出为:

data:
             A   B   C   D
2017-01-08   0   1   2   3
2017-01-09   4   5   6   7
2017-01-10   8   9  10  11
2017-01-11  12  13  14  15
2017-01-12  16  17  18  19
2017-01-13  20  21  22  23
修改后的数据为:
             A   B   C   D  E
2017-01-08   0   1   2   3  0
2017-01-09   4   5   6   7  1
2017-01-10   8   9  10  11  2
2017-01-11  12  13  14  15  3
2017-01-12  16  17  18  19  4
2017-01-13  20  21  22  23  5

这样我们新增了一列E。

时间: 2024-10-11 06:57:20

pandas设置值-【老鱼学pandas】的相关文章

pandas处理丢失数据-【老鱼学pandas】

假设我们的数据集中有缺失值,该如何进行处理呢? 丢弃缺失值的行或列 首先我们定义了数据集的缺失值: import pandas as pd import numpy as np dates = pd.date_range("2017-01-08", periods=6) data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C&

pandas基本介绍-【老鱼学pandas】

前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号以及实际的数据,而numpy就仅仅包含了实际的数据. 安装 直接输入: pip3 install pandas 最基本用法 import pandas as pd s = pd.Series([1, 2, 5, 6]) print(s) 输出: 0 1 1 2 2 5 3 6 dtype: int6

matplotlib坐标轴设置-【老鱼学matplotlib】

我们可以对坐标轴进行设置,设置坐标轴的范围,设置坐标轴上的文字描述等. 基本用法 例如: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成x轴上的数据:从-3到3,总共有50个点 x = np.linspace(-1, 1, 50) # 定义一个线性方程 y1 = 2 * x + 1 # 定义一个二次方程 y2 = x ** 2 # 设置x轴的取值范围为:-1到2 plt.xlim(-1, 2)

为何学习matplotlib-【老鱼学matplotlib】

这次老鱼开始学习matplotlib了. 在上个pandas最后一篇博文中,我们已经看到了用matplotlib进行绘图的功能,这次更加系统性地多学习一下关于matplotlib的功能. 在matlab中,其拥有非常强大的显示图表的功能. 在python中,就提供了一个类似matlab软件中的画图库matplotlib,其基本上是模仿matlab中的画图函数. 官网中介绍的显示图表的例子见:http://matplotlib.org/gallery/index.html 要使用,就必须先进行安装

pandas设置值、更改值

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/24 15:03 # @Author : zhang chao # @File : s.py from scipy import linalg as lg #按标签选择 #通过标签选择多轴 import pandas as pd import numpy as np dates = pd.date_range('20170101', periods=8) df = pd.

tensorflow 传入值-【老鱼学tensorflow】

上个文章中讲述了tensorflow中如何定义变量以及如何读取变量的方式,本节主要讲述关于传入值. 变量主要用于在tensorflow系统中经常会被改变的值,而对于传入值,它只是当tensorflow系统运行时预先设置的值,然后在运行期间不会被改变,有点类似函数中的不可变的输入参数. 传入值同常量之间的差别是:常量在tensorflow系统运行之前就已经确定了的值,无法对其进行任何的改变. 而传入值或称为placeholder是在系统运行前需要对其进行设置相应的值. 我们来看一个例子,这个例子只

Pandas设置值

1.创建数据 >>> dates = pd.date_range('20130101', periods=6) >>> df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D']) >>> print(df) A B C D 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11

matplotlib柱状图-【老鱼学matplotlib】

柱状图在平常的图表中是非常常用的图,本节我们来看下如何来显示柱状图. 代码为: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 柱子的数量 n = 12 # 生成X轴上的坐标位置 X = np.arange(n) # 生成Y轴上的值 Y = np.random.rand(n) plt.bar(X, Y) # 生成柱状图上的标注值 for x,y in zip(X, Y): # 在(x, y+0.01

sklearn交叉验证2-【老鱼学sklearn】

过拟合 过拟合相当于一个人只会读书,却不知如何利用知识进行变通. 相当于他把考试题目背得滚瓜烂熟,但一旦环境稍微有些变化,就死得很惨. 从图形上看,类似下图的最右图: 从数学公式上来看,这个曲线应该是阶数太高的函数,因为一般任意的曲线都能由高阶函数来拟合,它拟合得太好了,因此丧失了泛化的能力. 用Learning curve 检视过拟合 首先加载digits数据集,其包含的是手写体的数字,从0到9: # 加载数据 digits = load_digits() X = digits.data y