76303


CSVファイルのデータを抽出した日付のデータを変換した後に文字列の末尾を削除したいです。  
`format="2021-06-03 12:10:10"`から`format="2021-06-03 12:1"`
日付の形式を変換したいですが、[:-1]を指定しても`format="2021-06-03 00:00"`になってしまいます。

わかる方いらっしゃいましたらご教示願います。  
お手数ですが、宜しくお願いいたします。

**CSVのデータ:**

[code]

    A         
    2021-06-03 12:10:10
    
[/code]

**フォーマットの変換後 (期待する結果):**

[code]

    A         
    2021-06-03 12:1
    
[/code]

[code]

    import pandas as pd
    import codecs
    from datetime import datetime as dt
    
    with codecs.open(filename, "r", "Shift-JIS", "ignore") as file:
      df2 = pd.read_table(
        file, delimiter=",", parse_dates=['A'],
    　　date_parser=lambda d: dt.strptime(d, "%y-%m-%d %H:%M:%S").strftime("%Y-%m-%d %H:%M")[:-1]))
      print(df2)
    
[/code]


CC BY-SA 4.0
2021-06-03T07:17:35.147
76300
2021-06-03T08:30:34.467
2021-06-03T07:48:49.547
3060
18859
question
python python3
Python 日付のフォーマット変換について


[pandas.read_table](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.read_table.html?highlight=read_table#pandas-
read-table) の `date_parser` は文字列ではなく `datetime` 型のインスタンスを生成します。

> **date_parser** : function, optional
>
> Function to use for converting a sequence of string columns to an array of
> **datetime instances**.

出力結果の妥当性はともかく(実際には「分」を 10 分単位で round する？)、この場合には `converters` が適切でしょう。

[code]

    with codecs.open(filename, "r", "Shift-JIS", "ignore") as file:
      df2 = pd.read_table(
        file, delimiter=",",
        converters={
          "A": lambda d: dt.strptime(d, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d %H:%M")[:-1]
        })
      print(df2)
    
    ## 実行結果
                     A
    0  2021-06-03 12:1
    
[/code]


CC BY-SA 4.0
2021-06-03T08:30:34.467
76303
2021-06-03T08:30:34.467
76300
answer