Ich möchte die folgenden Daten in zwei Spalten teilen, latitude
und longitude
und setzen Sie sie in einen Datenframe ein.
0 (45.349586099999996, -75.81031967988278)
1 (-37.77922725, 175.2010323246593)
2 (-42.9945669, 170.7100413)
3 (-39.2711067, 174.154795)
4 (51.2800275, 1.0802533)
5 (-41.30222105, 172.89453190955697)
6 (-35.3712702, 173.7405337)
7 (-45.7255555, 168.2936808)
8 (-40.3284102, 175.8190684)
9 (-45.1299859, 169.5248818)
10 (-37.9503756, 176.93828736155422)
Kann mir bitte jemand helfen?
0
user86907
3 Juni 2021 im 02:48
2 Antworten
Beste Antwort
Ein anderer Weg:
data='''a b
0 (45.349586099999996, -75.81031967988278)
1 (-37.77922725, 175.2010323246593)
2 (-42.9945669, 170.7100413)
3 (-39.2711067, 174.154795)
4 (51.2800275, 1.0802533)
5 (-41.30222105, 172.89453190955697)
6 (-35.3712702, 173.7405337)
7 (-45.7255555, 168.2936808)
8 (-40.3284102, 175.8190684)
9 (-45.1299859, 169.5248818)
10 (-37.9503756, 176.93828736155422)'''
df = pd.read_csv(io.StringIO(data), sep=' \s+', engine='python')
df[['lat', 'lon']] = df.b.str[1:-1].str.split(',', expand=True)
a b lat lon
0 0 (45.349586099999996, -75.81031967988278) 45.349586099999996 -75.81031967988278
1 1 (-37.77922725, 175.2010323246593) -37.77922725 175.2010323246593
2 2 (-42.9945669, 170.7100413) -42.9945669 170.7100413
3 3 (-39.2711067, 174.154795) -39.2711067 174.154795
4 4 (51.2800275, 1.0802533) 51.2800275 1.0802533
5 5 (-41.30222105, 172.89453190955697) -41.30222105 172.89453190955697
6 6 (-35.3712702, 173.7405337) -35.3712702 173.7405337
7 7 (-45.7255555, 168.2936808) -45.7255555 168.2936808
8 8 (-40.3284102, 175.8190684) -40.3284102 175.8190684
9 9 (-45.1299859, 169.5248818) -45.1299859 169.5248818
10 10 (-37.9503756, 176.93828736155422) -37.9503756 176.93828736155422
2
Jonathan Leon
3 Juni 2021 im 00:27
Daten
Position
0 (45.349586099999996,-75.81031967988278)
1 (-37.77922725,175.2010323246593)
2 (-42.9945669,170.7100413)
3 (-39.2711067,174.154795)
4 (51.2800275,1.0802533)
5 (-41.30222105,172.89453190955697)
6 (-35.3712702,173.7405337)
7 (-45.7255555,168.2936808)
8 (-40.3284102,175.8190684)
9 (-45.1299859,169.5248818)
10 (-37.9503756,176.93828736155422)
Lösung
#Strip of the brackets if column is string and not tuple.
#str.split column to make it a list
#stack it to dataframe it
pd.DataFrame(np.vstack(df['Position'].str.strip('\(\)').str.split(',')), columns=['Lat','Long'])
Lat Long
0 45.349586099999996 -75.81031967988278
1 -37.77922725 175.2010323246593
2 -42.9945669 170.7100413
3 -39.2711067 174.154795
4 51.2800275 1.0802533
5 -41.30222105 172.89453190955697
6 -35.3712702 173.7405337
7 -45.7255555 168.2936808
8 -40.3284102 175.8190684
9 -45.1299859 169.5248818
10 -37.9503756 176.93828736155422
1
wwnde
3 Juni 2021 im 00:25
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.