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。

posted @   dreampursuer  阅读(432)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2013-11-21 grails下的httpclient
点击右上角即可分享
微信分享提示