map可以做乙個對映,對於操作大型的dataframe來說就非常方便了,而且也不容易出錯。replace的作用是替換,這個很好理解。
import numpy as np
import pandas as pd
from pandas import series, dataframe
# create a dataframe
df1 = dataframe(
)print
(df1)
# 新增一列
# df1['gdp'] = series([1000, 3000, 2000])
# print(df1)
''' 人口 城市 gdp
0 1000 北京 1000
1 2000 上海 3000
2 1500 廣州 2000
'''dfp_map =
df1[
'gdp'
]= df1[
'城市'].
map(dfp_map)
print
(df1)
''' 人口 城市 gdp
0 1000 北京 1000
1 2000 上海 2000
2 1500 廣州 3000
總結: 使用map還是比建立series有優勢的,使用map就可以不關心dataframe的index,
只需要關注對應的城市即可。
注意下面的實驗
'''# 再做乙個實驗,新增乙個index
df2 = dataframe(
, index=
['a'
,'b'
,'c'])
print
(df2)
''' 人口 城市
a 1000 北京
b 2000 上海
c 1500 廣州
'''df2[
'gdp'
]= series(
[1000
,2000
,3000])
print
(df2)
''' 人口 城市 gdp
a 1000 北京 nan
b 2000 上海 nan
c 1500 廣州 nan
可以看到答案是nan,這是為什麼呢?因為 series([1000, 2000, 3000])的索引預設是0,1,……
所以就出現了問題。
解決方法是:必須要給series新增指定的索引。
'''# replace in series
s1 = series(np.arange(10)
)print
(s1)
'''1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
dtype: int64
'''print
(s1.replace(
1, np.nan)
)# 會返回乙個新的series,也可以使用字典的方式
'''0 0.0
1 nan
2 2.0
3 3.0
4 4.0
5 5.0
6 6.0
7 7.0
8 8.0
9 9.0
dtype: float64
'''# 還可以採用列表的方式,把多個元素個replace掉
print
(s1.replace([1
,2,3
],[10
,20,30
]))'''
0 0
1 10
2 20
3 30
4 4
5 5
6 6
7 7
8 8
9 9
dtype: int64
'''
對pandas中Series的map函式詳解
series的map方法可以接受乙個函式或含有對映關係的字典型物件。使用map是一種實現元素級轉換以及其他資料清理工作的便捷方式。dataframe中對應的是applymap 函式,當然dataframe還有apply 函式 1 字典對映 import pan程式設計客棧das as pd from...
如何從Oracle的FORM中呼叫REPORT
在選單中呼叫report程式 不傳引數,傳引數可用下面的程式段 run product reports,報表程式名.rep synchronous,runtime,filesystem,null 在form中呼叫report程式 可傳引數 declare pl id paramlist begin ...
pandas中loc iloc ix的區別和使用
在利用pandas處理資料時loc iloc ix對資料的操作很頻繁,所以這裡簡單的介紹一下它們之間的區別和各自的使用。pandas的索引可歸納為3種 loc,標籤索引 location iloc,位置索引 int localtion ix,標籤與位置混合索引 對於ix先按標籤索引嘗試操作,然後再按...