作者InRainbows (江南style)
看板Python
标题[问题] Pandas运算
时间Thu Feb 18 08:35:04 2016
各位前辈,小弟最近正在学习用pandas整理资料
我有一个DataFrame大概长这样
一行是测量值,另一行是单位
单位的表示有时候并不一致,例如square feet可能会有ft^2, ft2或sqft不同形式出现
我想把所有数据转成同样的单位,例如m2
请问该怎麽做到呢?
Value unit
200 ft^2
0.5 m2
0.3 m2
0.5 m2
100 ft2
150 ft2
305 ft^2
烦请指教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 129.82.194.235
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1455755706.A.C53.html
1F:推 FatGuyinNCTU: Groupby 之後再依次处理不同单位 02/18 09:32
2F:→ MOONY135: 多一个新栏位 然後BY你的UNIT不同作新处理 02/18 10:49
3F:→ MOONY135: IF UNIT=ft^2 then new_value = 2 * value 02/18 10:50
感谢提示.目前想到大概可以这样,不过不知道if应该加在哪?可以再给一些提示吗谢谢
def to_sq_meter(x):
return 0.0929 * x
df['si_unit'] = df['unit'].map(to_sq_meter)
※ 编辑: InRainbows (129.82.194.235), 02/18/2016 12:00:30
4F:→ MOONY135: PYTHON 写SQL语法这样 02/18 16:58
5F:推 painkiller: 如果单位是两种,只是square feet字串长不一样 02/21 10:11
6F:→ painkiller: df[df.unit != 'm2'].Value*0.0929 02/21 10:16
7F:→ Yshuan: 做一个dict of function或着strategy pattern? 02/23 18:13
8F:→ Yshuan: 刚没看懂 @@ 多一个栏位去记单位一劳永逸吧 02/23 18:15
9F:→ Yshuan: def transferUnit(tagetUnit): #实作switch-case by unit 02/23 18:18