前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据分析可视化】Mapping和Replace

【数据分析可视化】Mapping和Replace

作者头像
瑞新
发布2020-07-07 19:59:14
3740
发布2020-07-07 19:59:14
举报
文章被收录于专栏:用户3288143的专栏

DataFrame插入新列,引出Map

代码语言:javascript
复制
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
代码语言:javascript
复制
# 通过字典创建DataFrame
df1 = DataFrame({'城市':['北京','上海','广州'],'人口':[1000,2000,3000]})
df1

城市

人口

0

北京

1000

1

上海

2000

2

广州

3000

代码语言:javascript
复制
# 给DataFrame增加一列(直接赋值)
# 缺点:要关注顺序
df1['GDP'] = Series([100,200,300])
df1

城市

人口

GDP

0

北京

1000

100

1

上海

2000

200

2

广州

3000

300

代码语言:javascript
复制
# 通过城市增加GDPMap
# 优点:无需关注顺序
gdp_map = {'北京':300,'上海':400,'广州':500}
# 也是新一列就是赋值方式是map
df1['GDPMap'] = df1['城市'].map(gdp_map)
df1

城市

人口

GDP

GDPMap

0

北京

1000

100

300

1

上海

2000

200

400

2

广州

3000

300

500

直接Series插入的列(坑:1顺序2索引值改动对应)

代码语言:javascript
复制
# 索引值如果自定义
# 通过字典创建DataFrame
df1 = DataFrame({'城市':['北京','上海','广州'],'人口':[1000,2000,3000]},index=['A','B','C'])
df1

城市

人口

A

北京

1000

B

上海

2000

C

广州

3000

代码语言:javascript
复制
# 问题: 新列值为nan
# 给DataFrame增加一列(直接赋值)
# 缺点:要关注顺序
df1['GDP'] = Series([100,200,300])
df1

城市

人口

GDP

A

北京

1000

NaN

B

上海

2000

NaN

C

广州

3000

NaN

代码语言:javascript
复制
# 解决: 指定列值
# 麻烦,因此建议直接用map()字典对应
df1['GDP'] = Series([100,200,300], index=['A','B','C'])
df1

城市

人口

GDP

A

北京

1000

100

B

上海

2000

200

C

广州

3000

300

Replace in Series

代码语言:javascript
复制
s1 = Series(np.arange(10))
s1
代码语言:javascript
复制
0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
dtype: int64
代码语言:javascript
复制
# 替换(字典也行)
s1.replace(1,np.nan)
代码语言:javascript
复制
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
代码语言:javascript
复制
# 多数据同时替换
s1.replace([1,2,3],[20,30,40])
代码语言:javascript
复制
0     0
1    20
2    30
3    40
4     4
5     5
6     6
7     7
8     8
9     9
dtype: int64
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DataFrame插入新列,引出Map
    • 直接Series插入的列(坑:1顺序2索引值改动对应)
    • Replace in Series
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档