Python - Pandas - Работа с кадрами данных на отфильтрованных значениях - PullRequest
0 голосов
/ 30 марта 2020

Я борюсь с довольно простой проблемой.

Ниже приведен пример двух строк в кадре данных.

df_example.iloc[0]=
date: 24/03/2020
time: 10:10:10
currency: GBX
price: 100

df_example.iloc[1]=
date: 24/03/2020
time: 11:10:10
currency: EUR
price: 20

Я хотел бы просто разделить последнюю цену GBX Однако значение в первой строке не влияет на вторую строку в моем фрейме данных. Методы, которые я попробовал, преобразуют цену второй строки в NaN или python, которые генерируют несколько предупреждений / предупреждений, которых я хотел бы избежать.

Метод, который я выбрал, это For For oop, который перебирает каждую строку и охватывает все GBX до их основных GBP и оставляет все значения EUR одинаковыми, что приводит к отсутствию значений NaN. Однако это занимает очень много времени, чтобы перебрать каждую строку.

Методы: Работа:

for i in range(len(df.index)-1):
    if df['currency'].iloc[i] == 'GBX':
        df['price'].iloc[i] = float(df['price'].iloc[i]) / 100
        #print(df['Last Price'].iloc[i])
    else:
        df['price'].iloc[i] = float((df['price'].iloc[i]))
        #print(df['Last Price'].iloc[i])

Не работает: 1. df['Last Price'] = df[df['Currency']==GBX]['Last Price'].div(100) 2. df['Last Price'] = df[df['Currency']==GBX]['Last Price'].apply(lambda x: x/100) 3. создание двух разных фреймов данных и попытка объединить сквозные python предупреждения индекса

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо.

...