大佬教程收集整理的这篇文章主要介绍了如何按熊猫中时间戳值的一部分进行分组?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试拆分并输出 csv 文件。我必须使用日期作为文件名,但不需要时间。
所以我想拆分Order_Date,它是一个同时具有日期和时间的时间戳。
如何按熊猫中的一部分值进行分组?
有我的代码:
import csv
import re
import pandas as pd
import os
df = pd.read_csv('test.csv',delimiter='|')
for i,x in df.groupby('Order_Date'):
p = os.path.join(r'~/Desktop/',("data_{}.csv").format(i.lower()))
x.to_csv(p,sep = '|',index=falsE)
现在我可以得到这个:
data_2019-07-23 00:06:00.csv
data_2019-07-23 00:06:50.csv
data_2019-07-23 00:06:55.csv
data_2019-07-28 12:31:00.csv
示例 test.csv 数据:
ChAnnel|Store_ID|Store_Code|Store_Type|Order_ID|Order_Date|Member_ID|Member_TIEr|Coupon_ID|Order_@R_515_10586@l|Material_No|Material_name|Size|Quantity|Unit_Price|line_@R_515_10586@l|discount_amount
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:00||||1064.00|7564|Full Zip|750|1.00|399.00|168.00|231.00
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:00||||1064.00|1361|COol TEE|200|1.00|199.00|84.00|115.00
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:00||||1064.00|7699|PANT|690|1.00|499.00|210.00|289.00
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:00||||1064.00|8700|AI DRESS|690|1.00|399.00|196.00|203.00
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:50||||1064.00|8438|copA|690|1.00|229.00|112.00|117.00
ECOM|ECOM|ECOM|ECOM|A190700|2019-07-23 00:06:55||||1064.00|8324|CLASS|350|1.00|599.00|294.00|305.00
ECOM|ECOM|ECOM|ECOM|A190701|2019-07-28 12:31:00||||798.00|3689|DRESS|500|1.00|699.00|294.00|405.00
期待我得到这个:
data_2019-07-23.csv
data_2019-07-28.csv
非常感谢任何帮助。
您需要将 Order_Date
转换为日期 - 剥离时间信息。一种快速的方法是:
df['Order_Date1'] = pd.to_datetiR_532_11845@e(df['Order_Date']).dt.strftime('%Y-%m-%d')
然后使用 Order_Date1
进行分组。
您可以尝试使 i 成为字符串,然后使用 .split() 然后使用 0 索引:
str(i).split()[0]
因此在您的代码中替换:
for i,x in df.groupby('Order_Date'):
p = os.path.join(r'~/Desktop/',("data_{}.csv").format(str(i).split()[0]))
x.to_csv(p,sep = '|',index=falsE)
以上是大佬教程为你收集整理的如何按熊猫中时间戳值的一部分进行分组?全部内容,希望文章能够帮你解决如何按熊猫中时间戳值的一部分进行分组?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。