我有一个数据框,它由年、月和日的单独列组成。我尝试使用以下方法将这些单独的列组合成一个日期:
df['myDt']=pd.to_datetime(df[['year','month','day']])
Run Code Online (Sandbox Code Playgroud)
只会得到以下错误:“组装映射需要至少指定 [年、月、日]:[日、月、年] 缺失”。不知道这意味着什么......我已经提供了相关的专栏。在检查数据类型时,我发现它们的 Year、Month 和 Day 列是 int64。这会引起问题吗?谢谢,切特
谢谢大家发帖。按照建议,我首先发布示例数据集:
Value mm yy dd
Date
2018-11-30 88.550067 11 2018 1
2018-12-31 88.906290 12 2018 1
2019-01-31 88.723000 1 2019 1
2019-02-28 89.509179 2 2019 1
2019-03-31 90.049161 3 2019 1
2019-04-30 90.523100 4 2019 1
2019-05-31 90.102484 5 2019 1
2019-06-30 91.179400 6 2019 1
2019-07-31 90.963570 7 2019 1
2019-08-31 92.159170 8 2019 1
数据来源为:https ://www.quandl.com/data/EIA/STEO_NGRPPUS_M 我导入的数据如下: 1.导入quandl(先用conda install) 2.用Quandl的Python代码:
data=quandl.get("EIA/STEO_NGRPPUS_M", authtoken="TOKEN","2005-01-01","2005-12-31") 4. 需要注意的是,原始数据仅带有 Value 列,和日期时间作为索引。我提取并创建了 mm、yy 和 dd 列(月、年和 dd 是一个设置为 1 的列向量)我想要做的就是创建另一个名为“本月的第一天”的列 - 所以对于每一天每个月,该列只会显示“MM/YY/1”。我将很快尝试下面的所有建议,然后回复你们。谢谢!!
您可以datetime.datetime与.apply().
import datetime
d = datetime.datetime(2020, 5, 17)
date = d.date()
Run Code Online (Sandbox Code Playgroud)
pandas.to_datetime(df)看起来你的代码没问题。请参阅pandas.to_datetime文档和如何在 Pandas 中将列转换为一个日期时间列?.
df = pd.DataFrame({'year': [2015, 2016],
'month': [2, 3],
'day': [4, 5]})
pd.to_datetime(df[["year", "month", "day"]])
Run Code Online (Sandbox Code Playgroud)
输出:
0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
比方说,你的年,月,日柱为标记yy,mm并dd分别。而且您更喜欢保持列名不变。在这种情况下,您可以按如下方式进行。
0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
输出:
0 2015-02-04
1 2016-03-05
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
这是一个两线:
df['dateInt']=df['year'].astype(str) + df['month'].astype(str).str.zfill(2)+ df['day'].astype(str).str.zfill(2)
df['Date'] = pd.to_datetime(df['dateInt'], format='%Y%m%d')
Run Code Online (Sandbox Code Playgroud)
输出
year month day dateInt Date
0 2015 5 20 20150520 2015-05-20
1 2016 6 21 20160621 2016-06-21
2 2017 7 22 20170722 2017-07-22
3 2018 8 23 20180823 2018-08-23
4 2019 9 24 20190924 2019-09-24
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22197 次 |
| 最近记录: |