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 @ 2017-11-21 10:09  dreampursuer  阅读(432)  评论(0编辑  收藏  举报