2015-03-05 31 views
5

Tôi có một chuỗi ở định dạng datetime và cần thay đổi ngày thành 1 cho mỗi mục nhập. Tôi đã nghĩ về nhiều giải pháp đơn giản, nhưng không có giải pháp nào phù hợp với tôi. Còn bây giờ, điều duy nhất mà thực sự hoạt động làPandas: Thay đổi ngày

  • thiết series như chỉ số
  • tháng Query và năm kể từ index
  • Cải tạo một chuỗi thời gian mới sử dụng năm, tháng và 1

Nó không thể thực sự phức tạp, phải không? Có tháng bắt đầu, nhưng tiếc là một offset, đó là không sử dụng ở đây. Dường như không có hàm set() cho phương thức và thậm chí ít chức năng hơn trong khi chuỗi là một cột và không phải (một phần) bản thân chỉ mục.

Câu hỏi liên quan duy nhất là this, nhưng mẹo được sử dụng ở đây không áp dụng ở đây.

Trả lời

8

Bạn có thể sử dụng .applydatetime.replace, ví dụ:

import pandas as pd 
from datetime import datetime 

ps = pd.Series([datetime(2014, 1, 7), datetime(2014, 3, 13), datetime(2014, 6, 12)]) 
new = ps.apply(lambda dt: dt.replace(day=1)) 

Cung cấp:

0 2014-01-01 
1 2014-03-01 
2 2014-06-01 
dtype: datetime64[ns] 
Các vấn đề liên quan