【问题标题】:Finding the first transaction date in a data set查找数据集中的第一个交易日期
【发布时间】:2022-10-19 16:07:36
【问题描述】:

所以图片是我正在处理的数据集。我正在使用 Python 3 和 Pandas 包。我要回答的问题是:“第一次销售的月份和日期是什么?按该顺序存储为元组,并将元组分配给变量 first_date。”

我的思考过程是将“trans_timestamp”列转换为 int 而不是浮点数,这样我就可以找到 int 的最小值。这是我实现的代码

df_cleaned['trans_timestamp'] = df_cleaned['trans_timestamp'].astype(int)

first_date = df_cleaned['trans_timestamp'].min()

first_date

我猜.astype(int) 是问题所在,或者我只是从完全不同的角度看待问题,而不是他们想要我的方式。有什么帮助谢谢!

【问题讨论】:

标签: python python-3.x pandas dataframe dataset


【解决方案1】:

trans_timestamp 列可以是字符串格式而不是日期时间对象。使用pd.to_datetime() 转换为日期时间格式:

import pandas as pd

df = pd.DataFrame({'trans_timestamp': ['2021-01-01 07:35:21.439','2021-01-01 09:33:37.499','2021-06-30 15:37:12.821'],
                   'prod_price': ['72.99','18.96','9.95']  })
df['trans_timestamp'] = pd.to_datetime(df['trans_timestamp'])
print(df)

          trans_timestamp prod_price
0 2021-01-01 07:35:21.439      72.99
1 2021-01-01 09:33:37.499      18.96
2 2021-06-30 15:37:12.821       9.95

要检查列是否为数据时间格式,请使用df['trans_timestamp'].info(),您会得到datetime64[ns]。然后你可以使用.min() 来获取最小的日期

print(df['trans_timestamp'].min())
#output: Timestamp('2021-01-01 07:35:21.439000')

ts = df['trans_timestamp'].min()
first_date = (ts.month, ts.day)
print(first_date)
#output: (1, 1)

【讨论】:

  • 这对我来说是有道理的,但是当我将它插入到我的具体问题时,我得到了这个结果:你的答案是 first_date 变量的类型 <class 'pandas._libs.tslibs.timestamps.Timestamp'>,但我们期望 tuple。仔细检查您的代码。
  • 尝试做first_date = (ts.month, ts.day)ts = df['trans_timestamp'].min(),查看更新的解决方案
  • 你的问题解决了吗?
【解决方案2】:

你完成了作业的所有问题吗,请你分享我的电子邮件地址 moazzam.naseer@gmail.com,谢谢和亲切的问候,

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-22
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多