У меня есть два набора данных
я). SanFransisco Зарплатные данные
II). Поддельные данные заказа Амазонки
Теперь у меня есть сомнения, потому что в одном наборе данных моя логика условного выбора работает, а в другом я должен использовать другую логику.
1. САН-ФРАНЦИКО ПРИМЕР
import pandas as pd
sal=pd.read_csv('Salary.csv')
sal.info()
DATA
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 148654 entries, 0 to 148653
Data columns (total 13 columns):
Id 148654 non-null int64
EmployeeName 148654 non-null object
JobTitle 148654 non-null object
BasePay 148045 non-null float64
OvertimePay 148650 non-null float64
OtherPay 148650 non-null float64
Benefits 112491 non-null float64
TotalPay 148654 non-null float64
TotalPayBenefits 148654 non-null float64
Year 148654 non-null int64
Notes 0 non-null float64
Agency 148654 non-null object
Status 0 non-null float64
dtypes: float64(8), int64(2), object(3)
memory usage: 14.7+ MB
Я пытаюсь решить этот вопрос ниже
ВОПРОС: Сколько рабочих мест было представлено только одним человеком в 2013 году? (например, звания вакансий только один раз в 2013 году?)
len(sal[(sal['Year']==2013) & (sal['JobTitle'].value_counts()==1)])
Это не работает. Он выводит 0, где он должен вывести 202
sum(sal[sal['Year']==2013]['JobTitle'].value_counts()==1)
Это работает. Но это не интуитивно понятно.
2. ПРИМЕР ECOMMERCE ИЛИ AMAZON
import pandas as pd
ecom=pd.read_csv('EcommercePurchases.csv')
ecom.info()
DATA
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10000 entries, 0 to 9999
Data columns (total 14 columns):
Address 10000 non-null object
Lot 10000 non-null object
AM or PM 10000 non-null object
Browser Info 10000 non-null object
Company 10000 non-null object
Credit Card 10000 non-null int64
CC Exp Date 10000 non-null object
CC Security Code 10000 non-null int64
CC Provider 10000 non-null object
Email 10000 non-null object
Job 10000 non-null object
IP Address 10000 non-null object
Language 10000 non-null object
Purchase Price 10000 non-null float64
dtypes: float64(1), int64(2), object(11)
memory usage: 1.1+ MB
Я попытался решить приведенный ниже вопрос, используя вышеприведенную логику, и в этом случае это сработало
ВОПРОС: Сколько людей выбрали American Express в качестве поставщика кредитной карты и сделали покупку на сумму свыше 95 долларов США?
len(ecom[(ecom['CC Provider']=='American Express') & (ecom['Purchase Price'] >95)])
Это дает идеальный результат здесь. Интересно, почему это не работает в приведенном выше случае.
P.S. Полный новичок здесь, только начал 4-5 дней назад.