如何实例化一个类?

2024-10-04 11:36:31 发布

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

我目前正在尝试运行此解决方案,但我很难理解这里到底发生了什么。我得到的错误是:

line 39, in <module>
    map_manufacturer_model()
TypeError: map_manufacturer_model() missing 1 required positional argument: 's'

在线阅读文档意味着我需要在调用对象之前实例化它?但我仍然不确定这意味着什么。我有我的数据框,我试着循环里面的所有东西,以得到正确的制造商和仪表型号?关于这个问题的任何指导都是非常明确的

测试csv:https://docs.google.com/spreadsheets/d/1nxLO7c2veCJOHp7Uw_3ZuUtYUvvMHtelEE-UW9QpY9g/edit#gid=0

gas_data = pd.read_csv(r'C:\Users\test.csv')

manufacturers = {'G4F0': 'FLN', 'G4K0': 'HWL', 'E6S1': 'LPG'}

meter_models = {'G4F0': {'1': 'G4SZV-1', '2': 'G4SZV-2'},
                'G4K0': {'': 'BK-G4E'},
                'E6S1': {'': 'G470'},
                }

def map_manufacturer_model(s):
    s = str(s)
    model = 'unknown'
    try:
        manufacturer = manufacturers[s[:4]]
        for k, m in meter_models[s[:4]].items():
            if s[-4:].startswith(k):
                model = m
                break
    except KeyError:
        manufacturer = 'unknown'

    return pd.Series({'New Meter Manufacturer': manufacturer,
                      'New Meter Model': model
                      })


gas_data[['New Meter Manufacturer', 'New Meter Model']] = gas_data['New Serial Number'].apply(
    map_manufacturer_model)


map_manufacturer_model()

Tags: csvinmapnewdatamodelpdmeter
2条回答

这个问题是因为我再次调用了这个函数,即使它已经在apply(map_manufacturer_model)中被调用了

这与实例化对象无关。很明显,你误解了解决方案的工作原理

将名为map_manufacturer_model函数对象(不是类名)作为参数传递给.apply(..),以便后者可以在库的函数实现中调用map_manufacturer_model。所以你不应该是那个调用map_manufacturer_model的人

所以去掉最后一行

相关问题 更多 >