Wie man eine Tupelsäule aus zwei Spalten in Pandas bildet
Habe ich ein Pandas DataFrame, und ich will zu kombinieren, die 'lat' und 'long' Spalten bilden ein Tupel.
<class 'pandas.core.frame.DataFrame'>
Int64Index: 205482 entries, 0 to 209018
Data columns:
Month 205482 non-null values
Reported by 205482 non-null values
Falls within 205482 non-null values
Easting 205482 non-null values
Northing 205482 non-null values
Location 205482 non-null values
Crime type 205482 non-null values
long 205482 non-null values
lat 205482 non-null values
dtypes: float64(4), object(5)
Den code, den ich versucht, war:
def merge_two_cols(series):
return (series['lat'], series['long'])
sample['lat_long'] = sample.apply(merge_two_cols, axis=1)
Jedoch, dieser hat folgenden Fehler zurückgegeben:
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-261-e752e52a96e6> in <module>()
2 return (series['lat'], series['long'])
3
----> 4 sample['lat_long'] = sample.apply(merge_two_cols, axis=1)
5
...
AssertionError: Block shape incompatible with manager
Wie kann ich dieses problem lösen?
InformationsquelleAutor der Frage elksie5000 | 2013-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Holen Sie sich bequem mit
zip
. Es kommt in praktisch, wenn der Umgang mit der Spalte Daten.Es ist weniger kompliziert und schneller als mit
apply
odermap
. So etwas wienp.dstack
ist doppelt so schnell wiezip
aber würde nicht geben Ihnen Tupel.InformationsquelleAutor der Antwort Dale Jung
InformationsquelleAutor der Antwort Wouter Overmeire
Pandas hat die
itertuples
Methode, genau das zu tun:InformationsquelleAutor der Antwort Ted Petrou