请教 pandas的dataframe中,如何取某一列<每个>数据最后2位?

新手上路,请多包涵

我想取name列的后2位,type列的后2位,price列的小数点前2位

df = pd.DataFrame({('PG苹果', 'FT11', 17.8),
                   ('XJ香蕉', 'FT12', 32.06),
                   ('SY山药', 'VG91', 20.6)},
                  columns=('name', 'type','price'))

希望输出是这样,谢谢
name type price
苹果 11 17
香蕉 12 32
山药 91 20

阅读 12.9k
1 个回答

name 和 type 都是字符串取后两位的方法都一样

df['name'] = df['name'].str[-2:]

df['type'] = df['type'].str[-2:]

price 是 float 类型转换成 int 就会丢弃小数点后面的值了

df['price'] = df['price'].astype(int)

价格如果直接丢弃小数点后的值会产生误差可以先四舍五入一下再转换

df['price'] = df['price'].round(0).astype(int)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏