Python: Итерация кадра данных - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь понять, почему фреймы данных позволяют мне использовать целые числа для помощи в индексировании одной функции, но не другой. Тот, где он работает, выглядит следующим образом ...

for item in xl.sheet_names:
    listOfDataStrings = []
    if "platform_observer_data" in str(item):
        theDataframe = xl.parse(item)
        platformlist = []
        tracklist = []
        timelist = []
        for i in range(len(theDataframe)):
            currentplatformindex = '540'
            #print(currentplatform)
            for col in theDataframe.columns:
                if currentplatformindex == str(theDataframe.loc[i, "Index"]):
                    platformlist.append(str(theDataframe.loc[i, "Platform_Name"]))
                    timelist.append(theDataframe.loc[i, "Time"])
                    tracklist.append(theDataframe.loc[i, "Tracks"])
                    data = {'"' + 'platform_name' : str(theDataframe.loc[i, "Platform_Name"]), 'tracks' : str(theDataframe.loc[i, "Tracks"]), 'time' : str(theDataframe.loc[i, "Time"]) + '"'}
                    #data = '"' + 'platform_name:' + str(theDataframe.loc[i, "Platform_Name"]) +'tracks:' + str(theDataframe.loc[i, "Tracks"]) + 'time:' + str(theDataframe.loc[i, "Time"]) + '"'
                    producer.send('numtest', data)
                    print(data)
                    sleep(2)
                    break

А тот, который не позволяет, выглядит так ...

def sendKafkaMessages(theDataframe):
    platformlist = []
    tracklist = []
    timelist = []
    for i in range(len(theDataframe)):
        currentplatformindex = '541'
        # print(currentplatform)
        for col in theDataframe.columns:
            print(str(i))
            if currentplatformindex == str(theDataframe.loc[i, "Index"]):
                platformlist.append(str(theDataframe.loc[i, "Platform_Name"]))
                timelist.append(theDataframe.loc[i, "Time"])
                tracklist.append(theDataframe.loc[i, "Tracks"])
                data = {'"' + 'platform_name': str(theDataframe.loc[i, "Platform_Name"]),
                        'tracks': str(theDataframe.loc[i, "Tracks"]), 'time': str(theDataframe.loc[i, "Time"]) + '"'}
                # data = '"' + 'platform_name:' + str(theDataframe.loc[i, "Platform_Name"]) +'tracks:' + str(theDataframe.loc[i, "Tracks"]) + 'time:' + str(theDataframe.loc[i, "Time"]) + '"'
                producer.send('numtest', data)
                print(data)
                time.sleep(2)
                break

В первом примере я получение Dataframe через файл .Xlsx, а второй я читаю из .CSV, используя эту строку df = pd.read_csv(event.src_path). Я могу распечатать фрейм данных, полученный из df = pd.read_csv(event.src_path), но по какой-то причине не могу выполнить его итерацию без появления ошибки, связанной с целочисленным индексированием. Любая помощь очень ценится !!

...