gpt4 book ai didi

python - 更改具有重复列标题的数据框列中的数据类型

转载 作者:行者123 更新时间:2023-11-30 21:58:12 24 4
gpt4 key购买 nike

我有以下数据框:

DTYYYYMMDD  TICKER      CLOSE   ...    DTYYYYMMDD  TICKER   CLOSE
0 19970102 AEF 18.7489 ... 20190222 AEF 7.2500
1 19970102 CVM 1093.7500 ... 20190222 CVM 2.8800
2 19970102 CMT 2.3125 ... 20190222 CMT 7.9750
3 19970102 BKTI.K 3.3750 ... 20190222 BKTI.K 4.0300

我想将所有 DTYYYYMMDD 列的数据类型从 int 更改为 date,从 19970102 到 1997-01-02。我尝试了以下代码

stock_dataframe['DTYYYYMMDD'] = pd.to_datetime(stock_dataframe['DTYYYYMMDD'].astype(str), format='%Y%m%d')

我收到以下错误:“ValueError:无法使用重复的键进行组装”

最佳答案

这是我建议申请的罕见情况之一:

df['DTYYYYMMDD'] = df['DTYYYYMMDD'].astype(str).apply(
pd.to_datetime, format='%Y%m%d', errors='coerce'
)
df

DTYYYYMMDD TICKER CLOSE DTYYYYMMDD TICKER CLOSE
0 1997-01-02 AEF 18.7489 2019-02-22 AEF 7.250
1 1997-01-02 CVM 1093.7500 2019-02-22 CVM 2.880
2 1997-01-02 CMT 2.3125 2019-02-22 CMT 7.975
3 1997-01-02 BKTI.K 3.3750 2019-02-22 BKTI.K 4.030
<小时/>

考虑到性能,我的答案的更强大版本。

if isinstance(df['DTYYYYMMDD'], pd.DataFrame):
df['DTYYYYMMDD'] = df['DTYYYYMMDD'].astype(str).apply(...)
else:
df['DTYYYYMMDD'] = pd.to_datetime(...)

如果您不确定何时存在重复列(以及何时不存在),这非常有用。

关于python - 更改具有重复列标题的数据框列中的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55011313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com