Python_Pandas - заполнение новой строки условием - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь просмотреть мой Dataframe и создать еще одну строку с именем «Conversions». Я бы хотел, чтобы строка «Конверсии» заполнялась только в том случае, если в строке «Валюта» указано «ЕВРО», и пропускала, если она не в евро. После того, как валюта "EUR" была определена, я хотел бы умножить ее на объект JPY, который равен 2

Текущий DF выглядит так:

Name     Currency     Amount  
a        EUR          12.00
b        USD          10.00
c        EUR           8.00
d        JPY          100.00
e        EUR          567.00

После выполнения я бы хотел, чтобы готовый продукт выглядел так:

Name     Currency     Amount  Conversions     
a        EUR          12.00      24.00
b        USD          10.00      20.00
c        EUR           8.00      16.00
d        JPY          100.00    200.00
e        EUR          567.00   1134.00

* данные в формате csv.
Пожалуйста, смотрите мою попытку ниже:

импорт CSV импорт панд в виде pd импортировать numpy как np

JPY = (2)

df = pd.read_csv('df.csv', delimiter=";")

for i in df.iteritems():
    if df.loc[(df['Currency'] == 'EUR')]:
        df['Conversions']= (df.to_numeric(df['Amount']*(JPY)))

Shell Response - ValueError: Истинное значение DataFrame неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ()

Заранее благодарим за любую помощь, которую вы можете оказать этому новичку.

1 Ответ

0 голосов
/ 04 ноября 2018

использовать np.select нет необходимости использовать цикл:

# your condition
conditions = [
    df['Currency'] == 'EUR'
]

# if condition is met
choices = [
    df['Amount']*2
]

# create a new column and a default value if no condition is met
# you can always change the default value to np.nan if you do not want a value
df['Conversions'] = np.select(conditions, choices, default=df['Amount'])


    Name    Currency    Amount  Conversions
0   a            EUR    12.0    24.0
1   b            USD    10.0    10.0
2   c            EUR    8.0     16.0
3   d            JPY    100.0   100.0
4   e            EUR    567.0   1134.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...