我试图给数据帧的索引贴上标签。现在,在正常情况下,应该是这样的:
pd.DataFrame(fruits, columns=['Name of Fruit', 'Price'],
index=['Aug. 01, 2017', 'Aug. 02, 2018'])现在,这些指数只标出一个月的两天。例如,如果我必须用8月1日的A1、8月2日的A2等符号对它们进行一整月或全年的索引.那么,怎样才是最理想的方法呢?
我试着减少劳动强度,不把每一次约会都手工安排好。
发布于 2017-08-12 16:14:15
试试这个:
index = pd.Series(pd.date_range(start='20170101', periods=99, freq='D')
.strftime('%b.%d')) \
.str.replace(r'(.).*?(\d+)', r'\1\2')产量:
In [74]: index
Out[74]:
0 J01
1 J02
2 J03
3 J04
4 J05
5 J06
6 J07
7 J08
8 J09
9 J10
...
89 M31
90 A01
91 A02
92 A03
93 A04
94 A05
95 A06
96 A07
97 A08
98 A09
Length: 99, dtype: object解释:
In [5]: pd.date_range(start='20170725', periods=10, freq='D').strftime('%b.%d')
Out[5]:
array(['Jul.25', 'Jul.26', 'Jul.27', 'Jul.28', 'Jul.29', 'Jul.30', 'Jul.31', 'Aug.01', 'Aug.02', 'Aug.03'],
dtype='<U6')然后,我们可以替换这些字符串,这样我们将只保留第一个字母和数字(日)在结尾.
发布于 2017-08-12 14:25:34
您可以使用date_range函数。
# One year, daily
pd.date_range(start='20170801', end='20180731', freq='D')
# Starting from August 1, 2017 - 365 days
pd.date_range(start='20170801', periods=365, freq='D')
# Ending at July 31, 2018 - 365 days
pd.date_range(end='20180731', periods=365, freq='D') 这些应该替换您要作为索引传递的列表。例如,pd.DataFrame(index=pd.date_range(start='20170801', end='20180731', freq='D'))。
https://stackoverflow.com/questions/45651173
复制相似问题