我是Python的新手,我希望我的问题不要傻... 我想加入pandas DataFrame(f1和f3),看来索引是不同的。
f1:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
'2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08',
'2018-01-09', '2018-01-10',
...
'2018-12-22', '2018-12-23', '2018-12-24', '2018-12-25',
'2018-12-26', '2018-12-27', '2018-12-28', '2018-12-29',
'2018-12-30', '2018-12-31'],
dtype='datetime64[ns]', name='date', length=365, freq=None)
f3:
Index([2018-01-01, 2018-01-02, 2018-01-07, 2018-03-30, 2018-04-01, 2018-04-02,
2018-05-01, 2018-05-10, 2018-05-20, 2018-05-21, 2018-06-04, 2018-08-01,
2018-12-25, 2018-12-26],
dtype='object')
现在,如果我按照cat = [f1,f3]的顺序加入他们,
cat_total = pd.concat(cat, axis=1, sort=False)
似乎有效,正确的结果如下所示:
print(cat.head())
weekday holidays
2018-01-01 0 Neujahrestag
2018-01-02 1 Berchtoldstag
2018-01-03 2 NaN
2018-01-04 3 NaN
2018-01-05 4 NaN
如果我更改为cat的顺序,例如cat = [f3,f1],则无法正常运行...
print(cat)
holidays weekday
2018-01-01 Neujahrestag 0
2018-01-02 Berchtoldstag 1
2018-01-07 Test ZH 1 6
2018-03-30 Karfreitag 4
2018-04-01 Ostern 6
2018-04-02 Ostermontag 0
2018-05-01 Tag der Arbeit 1
2018-05-10 Auffahrt 3
2018-05-20 Pfingsten 6
2018-05-21 Pfingstmontag 0
2018-06-04 Test ZH 2 0
2018-08-01 Nationalfeiertag 2
2018-12-25 Weihnachten 1
2018-12-26 Stephanstag 2
2018-01-01 00:00:00 NaN 0
2018-01-02 00:00:00 NaN 1
2018-01-03 00:00:00 NaN 2
2018-01-04 00:00:00 NaN 3
2018-01-05 00:00:00 NaN 4
2018-01-06 00:00:00 NaN 5
2018-01-07 00:00:00 NaN 6
为什么会这样?如何更改格式相同的pandas DataFrame索引之一?
f1-index来自dates = pd.date_range(start = startdate, end = enddate, freq = 'D')
,而f3-one是外部软件包“假期”的结果
我希望这些都是需要的信息。提前谢谢
马可
答案 0 :(得分:0)
您可以更改to_datetime
来格式化列,如下所示:
我假设该列名为DATE
cat_total['DATE'] = pd.to_datetime(cat_total['DATE'],format='%Y-%m-%d', errors='ignore')