циклически проходить через фрейм данных Pandas и добавлять аннотации - PullRequest
0 голосов
/ 02 октября 2018

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

     UPC  Quantity       Name    Size   Color       Type
0  11313        68     Crocus   small  purple  perennial
1  42164        51  Sunflower   large  yellow     annual
2  53890        76     Zinnia   small    pink     annual
3  54885        85      Daisy  medium   white  perennial
4  77314        80       Rose   large     red  perennial
5  79375        62        Mum  medium  yellow     annual
6  94281         1    Dahlia    large  orange  perennial
7  95085        41   Marigold   small  orange     annual

import pandas as pd
df = pd.read_csv("Plants_in_stock.csv")
#I add a column to annotate a discount for products I want to move
df['Discount'] = ''
df

Вот как выглядит результат на данный момент

Теперь я хочу добавить столбец «Скидка» кскажем 25%, если «количество»> 80, и 50%, если «тип» == «годовой».

Как мне поступить?

1 Ответ

0 голосов
/ 02 октября 2018

Использование np.select:

conds = [df.Quantity > 80, df['Type'] == 'annual']

choices = [0.25,0.5]
# or if you prefer strings formated with %:
# choices = ['25%','50%']

df['discount'] = pd.np.select(conds, choices)

>>> df
     UPC  Quantity       Name    Size   Color       Type  discount
0  11313        68     Crocus   small  purple  perennial      0.00
1  42164        51  Sunflower   large  yellow     annual      0.50
2  53890        76     Zinnia   small    pink     annual      0.50
3  54885        85      Daisy  medium   white  perennial      0.25
4  77314        80       Rose   large     red  perennial      0.00
5  79375        62        Mum  medium  yellow     annual      0.50
6  94281         1    Dahlia    large  orange  perennial      0.00
7  95085        41   Marigold   small  orange     annual      0.50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...