【发布时间】:2021-06-09 02:56:01
【问题描述】:
python2 代码中有一个函数,我正在将其重写到 python3 中
def abc(self, id):
if not isinstance(id, int):
id = int(id)
mask = self.programs['ID'] == id
assert sum(mask) > 0
name = self.programs[mask]['name'].values[0]
这里的“id”是一个panda系列,索引是字符串,列是int,如下所示
data = np.array(['1', '2', '3', '4', '5'])
# providing an index
ser = pd.Series(data, index =['a', 'b', 'c'])
print(ser)
self.programs['ID'] 是一个数据框列,其中有一行包含像 '1' 这样的整数数据
import pandas as pd
# initialize list of lists
data = [[1, 'abc']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['ID', 'name'])
我真的对“mask = self.programs['ID'] == id \ assert sum(mask) > 0”这一行感到困惑。有人能解惑吗?
【问题讨论】:
-
mask = self.programs['ID'] == id如果添加隐式括号会更容易阅读:mask = (self.programs['ID'] == id) -
断言会更好
assert np.any(mask)
标签: python-3.x python-2.7