我不能在 jupyter notebook 中使用基于 01,02,03... 的索引
Posted
技术标签:
【中文标题】我不能在 jupyter notebook 中使用基于 01,02,03... 的索引【英文标题】:I cannot use 01,02,03... based index in jupyter notebook 【发布时间】:2020-07-05 12:42:43 【问题描述】:用两位数表示索引 (0-9),例如 - 01,02,03... 而不是 1,2,3... 以与 Series(Pandas) 一起使用, 我在 jupyter notebook 中写了这段代码:
students = 01 : 'Ajoy',
03 : 'Tanzin',
04 : 'Sakib',
07 : 'Rahsed',
10 : 'Shawon'
s = pd.Series(students)
s
我回来了:
File "<ipython-input-50-ae82df390e04>", line 1
students = 01 : 'Ajoy',
^
SyntaxError: invalid token
但是,当我稍作改动时,开始索引(0-9)只有一位数字,程序执行成功!
students = 1 : 'Ajoy',
3 : 'Tanzin',
4 : 'Sakib',
7 : 'Rahsed',
10 : 'Shawon'
s = pd.Series(students)
s
输出:
1 Ajoy
3 Tanzin
4 Sakib
7 Rahsed
10 Shawon
dtype: object
为什么我无法使用第一种方法启动索引? 有没有必要这样做? 或者,如何开始表示以 2 位数字开头的索引?
【问题讨论】:
【参考方案1】:如何用2位数字表示索引:
如果索引是字符串,你可以吗?字符串当然可以是你喜欢的任何东西,pandas 允许这样做:
students = '01' : 'Ajoy',
'03' : 'Tanzin',
'04' : 'Sakib',
'07' : 'Rahsed',
'10' : 'Shawon'
s = pd.Series(students)
print(s)
输出:
01 Ajoy
03 Tanzin
04 Sakib
07 Rahsed
10 Shawon
dtype: object
为什么不能使用带前导零的 int 字面量:
您可以在lexical analysis of integer-literals 的文档中阅读:
请注意,不允许在非零十进制数中使用前导零。这是为了消除 Python 3.0 之前使用的 C 风格八进制文字的歧义。
简而言之,在 C 语言中(以及在 3.0 版之前的 Python 中),数字文字前的前导零标识八进制文字。
从 Python 3.0 开始,八进制文字由 0o
标识,但为了避免歧义,他们决定根本不允许前导零。
可能令人困惑的示例:
Python 2.7.5 (default, Apr 2 2020, 13:16:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0777 == 511
True
>>>
【讨论】:
【参考方案2】:python 3 中不允许使用前导零,您可以参考这个问题 SyntaxError invalid token
【讨论】:
以上是关于我不能在 jupyter notebook 中使用基于 01,02,03... 的索引的主要内容,如果未能解决你的问题,请参考以下文章
解决不能再jupyter notebook中使用tensorflow
为什么我不能在我的Jupyter Notebook(Python 3.6)中导入utils,尽管它已经安装了?
从csv更改Jupyter Notebooks上的ticks。