我不能使用01,02,03。。。基于索引的jupyter笔记本

2024-10-03 17:18:18 发布

您现在位置:Python中文网/ 问答频道 /正文

用两位数字表示索引(0-9),如-01,02,03。。。而不是1,2,3。。。要使用系列(Pandas),
我在jupyter笔记本中编写了以下代码:

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位数字开头的索引


Tags: 代码pandasipython笔记本jupyter数字fileseries
2条回答

Python3中不允许使用前导零。您可以参考此问题 SyntaxError invalid token

如何用两位数字表示索引:

如果索引是字符串,对您来说可以吗?当然,字符串可以是您喜欢的任何字符串,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的文档中所读到的:

Note that leading zeros in a non-zero decimal number are not allowed. This is for disambiguation with C-style octal literals, which Python used before version 3.0.

简而言之,在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
>>> 

相关问题 更多 >