1. 程式人生 > >pandas設置值-【老魚學pandas】

pandas設置值-【老魚學pandas】

per table 新增 篩選 pandas panda 使用 date -m

本節主要講述如何根據上篇博客中選擇出相應的數據之後,對其中的數據進行修改。

對某個值進行修改

例如,我們想對數據集中第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。

pandas設置值-【老魚學pandas】