将 pandas 列“一年中的某一天”转换为日期时间 (%m-%d)?

shm*_*k90 5 python datetime pandas

假设我有一个 Pandas DataFrame,其中有一列是一年中的天数(1 到 365)。我想获得一个新列,它是日期时间格式(或任何可以绘制为日期索引的格式),它只有日和月(无年份)值?也就是说 strftime 的格式为 %d-%m。

到目前为止,我已经成功地使用 strftime 从日期 1 -> 01-01 生成,问题是它现在是一个条带,对于绘制我的数据没有用处......

有什么想法可以绕过 Year 值吗?

rah*_*f23 5

这是一个带有Date列的示例数据框:

   Date     Open     High     Low    Close  Adj Close    Volume
0     1  4.06250  4.12500  3.8750  3.90625   3.093209   7048800
1     2  3.84375  3.96875  3.5000  3.62500   2.870497  12864000
2     3  3.50000  4.25000  3.5000  4.12500   3.266428   9526400
3     4  4.06250  4.68750  4.0625  4.50000   3.563378   5693600
4     5  4.40625  4.65625  4.1250  4.21875   3.340666  30480000
Run Code Online (Sandbox Code Playgroud)

然后您可以解析Dateusing pd.to_datetime(),然后使用以下命令重新格式化日期strftime()

df['Date'] = pd.to_datetime(df['Date'], format='%j').dt.strftime('%m-%d')
Run Code Online (Sandbox Code Playgroud)

给出:

    Date     Open     High     Low    Close  Adj Close    Volume
0  01-01  4.06250  4.12500  3.8750  3.90625   3.093209   7048800
1  01-02  3.84375  3.96875  3.5000  3.62500   2.870497  12864000
2  01-03  3.50000  4.25000  3.5000  4.12500   3.266428   9526400
3  01-04  4.06250  4.68750  4.0625  4.50000   3.563378   5693600
4  01-05  4.40625  4.65625  4.1250  4.21875   3.340666  30480000
Run Code Online (Sandbox Code Playgroud)