python - 在 Python 中删除 CSV 的整个价格列中的最后 2 位数字,或者在最后两位数字之前添加一个小数?
问题描述
我目前有一个看起来像这样的 csv
Category, Item, Price, ID, New Item?
Pants,Velvet Trouser,$16800,173778,False
Pants,Tartan Flannel Skate Pant,$12800,173800,False
Pants,Studded Collars Sweatpant,$15800,173764,False
Pants,Studded Work Pant,$14800,173518,False
Pants,Regular Jean,$14800,173505,False
Pants,Rigid Slim Jean,$15800,173493,False
Pants,Stone Washed Slim Jean,$16800,173502,False
Pants,Stone Washed Black Slim Jean,$14800,173469,False
Skate,Supreme®/Spitfire® Classic Wheels (Set of 4),$3000,173533,False
Skate,Supreme®/Independent® Truck,$5000,173491,False
Skate,Pills Skateboard,$5000,173833,False
Accessories,Supreme®/Mortal Kombat by Arcade1UP,$69800,173854,True
Accessories,Christmas Stocking,$8800,173845,True
我需要调整价格列并截断最后两个零,或者最好在最后两个零之前添加一个小数点。我根本不知道该怎么做。
我试图做这样的事情,但没有采取。
# g = csv.reader(open('Supreme_Items.csv', 'rb'))
# writer = csv.writer(open("SupremeItems.csv", 'wb'))
# for row in r:
# row[2] = len(str(row[2])) - 2
# # row[2] = row[2] + ".00"
# writer.writerow(row)
我应该提到我从 JSON 创建了这个 CSV,以防万一。
解决方案
如果您可以使用pandas
,那么您可以使用str.rsplit('00', n=1)
然后将 '.00' 添加到字符串的末尾:
import pandas as pd
df = pd.read_csv(file)
df['Price'] = df['Price'].str.rsplit('00', n=1).str[0] + '.00'
df.to_csv(file, index=False)
df
Out[1]:
Category Item Price \
0 Pants Velvet Trouser $168.00
1 Pants Tartan Flannel Skate Pant $128.00
2 Pants Studded Collars Sweatpant $158.00
3 Pants Studded Work Pant $148.00
4 Pants Regular Jean $148.00
5 Pants Rigid Slim Jean $158.00
6 Pants Stone Washed Slim Jean $168.00
7 Pants Stone Washed Black Slim Jean $148.00
8 Skate Supreme®/Spitfire® Classic Wheels (Set of 4) $30.00
9 Skate Supreme®/Independent® Truck $50.00
10 Skate Pills Skateboard $50.00
11 Accessories Supreme®/Mortal Kombat by Arcade1UP $698.00
12 Accessories Christmas Stocking $88.00
ID New Item?
0 173778 False
1 173800 False
2 173764 False
3 173518 False
4 173505 False
5 173493 False
6 173502 False
7 173469 False
8 173533 False
9 173491 False
10 173833 False
11 173854 True
12 173845 True
推荐阅读
- ruby-on-rails - 如何在 Rails 中加载这个 yml 文件?
- xamarin - 使用 AVPlayerViewController 播放视频时,Apple tv 遥控器上的播放/暂停按钮不起作用
- c++builder-6 - C++ Builder DrawGrid 用法
- javascript - 为什么我的按钮不再调用该函数?
- java - NetBeans 永远“运行...”并且不会编译
- html - 主页的图片链接不可点击
- sql - 如何订购商品和子商品?
- php - PHP Array 将数字键重新排列为父键
- apollo-server - Apollo Server:dataSources vs context 与数据库一起使用
- c# - 我无法使用 C# 将数据保存到我的 SQL 数据库