pandas根据值判断写入同一行不同列

打代码像cxk
  • 35

有一excel文件,有上千条数据,需要根据“地点”这一列,如果为北京,在“类型”这列写入‘A’,为上海,在“类型”这列写入‘B’,为广州,在“类型”这列写入‘C’,如果不用excel公式用pandas怎样实现?

序号 日期 地点 金额 类型
1 2020/04/09 北京 100.00
2 2020/04/10 上海 90.00
3 2020/04/10 广州 80.00
回复
阅读 2k
1 个回答
✓ 已被采纳

numpy.where 可以。

In [1]: import pandas as pd     

In [2]: import numpy as np                                   

In [3]: df = pd.DataFrame({'city': ['北京', '上海', '广州']})                 

In [4]: df['t'] = np.where(df.city == '北京', 'A', np.where(df.city == '上海', 'B', np.where(df.city == '广州', 'C', '?')))               

In [5]: df                                                                                                                                
Out[5]: 
  city  t
0   北京  A
1   上海  B
2   广州  C
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏