Я пытаюсь выяснить, как фильтровать данные в пандах, а затем назначить значение всем строкам столбца для элементов, которые соответствуют критериям фильтра и влияют ли они на исходный фрейм данных.Вот самая близкая попытка, которая у меня есть, но она выдает много информационных предупреждений:
import pandas as pd
df = pd.read_csv('http://www.sharecsv.com/dl/9096d32f98aa0ac671a1cca16fa43be8/SalesJan2009.csv')
df['Zone'] = ''
zone1 = df[(df['Latitude'] > 0) & (df['Latitude'] > 0)]
zone2 = df[(df['Latitude'] < 0) & (df['Latitude'] > 0)]
zone3 = df[(df['Latitude'] > 0) & (df['Latitude'] < 0)]
zone4 = df[(df['Latitude'] < 0) & (df['Latitude'] < 0)]
zone1[['Zone']] = zone1[['Zone']] = 1
zone2[['Zone']] = zone1[['Zone']] = 2
zone3[['Zone']] = zone1[['Zone']] = 3
zone4[['Zone']] = zone1[['Zone']] = 4
df
Это никак не влияет на исходный фрейм данных, но устанавливает значения в отфильтрованных подмножествах.
Я предполагаю, что мне может понадобиться отфильтровать все, что соответствует каждому из моих фильтров, удалить его из оригинала и затем объединить изменения обратно в исходный ??
Это случайный набор данныхчтобы проиллюстрировать, что я собираюсь сделать, но в моем фактическом наборе данных есть данные, которые не соответствуют никаким критериям фильтрации, и мне нужно поддерживать их как неизвестные, так как я не использую все строки, как в этом примере.
Я стараюсь избегать циклического повторения каждой строки и проверки критериев по каждой строке, поэтому, если кто-нибудь знает, как я могу это сделать, я буду очень благодарен!