Spędziłem trochę czasu na wyszukiwaniu i nie znalazłem odpowiedzi na proste pytanie: w jaki sposób mogę odwzorować kolumnę Pandas na miejscu? Powiedz, mam następujący DF:Kolumna mapy Pandy na miejscu
In [67]: frame = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon'])
In [68]: frame
Out[68]:
b d e
Utah -1.240032 1.586191 -1.272617
Ohio -0.161516 -2.169133 0.223268
Texas -1.921675 0.246167 -0.744242
Oregon 0.371843 2.346133 2.083234
I chcę dodać 1 do każdej wartości b
kolumnie. Wiem, że mogę to zrobić tak:
In [69]: frame['b'] = frame['b'].map(lambda x: x + 1)
Albo tak - AFAIK nie ma różnicy między map
i apply
w kontekście Series
(z wyjątkiem map
może również przyjąć dict
lub Series
) - poprawcie mnie jeśli się mylę:
In [71]: frame['b'] = frame['b'].apply(lambda x: x + 1)
Ale nie podoba mi się określenie 'b'
dwukrotnie. Zamiast tego chciałbym zrobić coś takiego:
frame['b'].map(lambda x: x + 1, inplace=True)
Czy to możliwe?
Jeśli zaznaczysz [ 'map'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.map.html) - nie, nie jest to możliwe. – jezrael