python - Pandas - 更改日期列中的每个日期

标签 python pandas dataframe

(您可以假设日期列是日期时间)

这可能与问题相关,但我还有一个具有以下值的日期列表:

['2018-01-01', '2018-02-01', '2018-03-01', 
'2018-04-01', '2018-05-01']

我有下表:

date         arb1      arb2      amount
2018-01-02   Z         F         5
2018-01-03   G         H         10
2018-02-04   V         T         51
2018-03-03   R         S         54

我想要这个输出,其中每个日期已设置为其相应月份的第一天:

date         arb1      arb2      amount
2018-01-01   Z         F         5
2018-01-01   G         H         10
2018-02-01   V         T         51
2018-03-01   R         S         54

奖金(不是必需的):我实际上想做的是按日期(月份)、arb1 和 arb2 分组后将金额相加,最终输出包含每个日期作为该月的第一天。我认为到达这里的一个简单方法是首先将每个日期更改为该月的第一天,但​​是如果在 pandas 中有一种简单的方法可以做到这一点,则不需要上述步骤,您可以跳到此

最佳答案

您需要通过以下方式获取该月的第一个日期。

df['date'] = df['date'].dt.to_period('M').dt.to_timestamp()

输出:

        date arb1 arb2  amount
0 2018-02-01    Z    F       5
1 2018-01-01    G    H      10
2 2018-02-01    V    T      51
3 2018-03-01    R    S      54

关于python - Pandas - 更改日期列中的每个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51675198/

相关文章:

python - pyspark.sql.utils.IllegalArgumentException : 'requirement failed: Invalid initial capacity'

python - Pandas 迭代索引并附加剩余行

python - 在 Pandas 数据框上一起应用过滤器并替换同一列

python - 更改 Ray RLlib Training 的 Logdir 而不是 ~/ray_results

python - 如何使用 tweepy 流式传输来自指定用户的推文(仅当该用户发布推文时才流式传输)

python - 有效地将数组的numpy数组转换为数组的pandas系列

python - Pandas 在与正则表达式匹配的列中用零替换负值

python - 在独立运行的 python 脚本之间共享 python 对象(例如 Pandas Dataframe)

r - 将向量转换为具有多列的数据框

python - 当它永远不会被实例化时,在 python 中创建一个类是否有意义?