Saya telah melihat beberapa masalah serupa di tumpukan, tetapi tidak persis seperti ini. Saya menghargai jika Anda dapat membagikan cara untuk mengubah df menjadi df2.

df = pd.DataFrame({'zips': ['11229 11226 11225', '90291 90293 90292'],
                  'lat': [40.6943, 34.1139],
                  'lng': [-73.9249, -118.4068]})


df2 = pd.DataFrame({'zips': [11229, 11226, 11225, 90291, 90293, 90292],
                  'lat': [40.6943, 40.6943, 40.6943, 34.1139, 34.1139, 34.1139],
                  'lng': [-73.9249, -73.9249, -73.9249, -118.4068, -118.4068, -118.4068]})```

Thanks!
0
windyvation 12 Mei 2021, 03:20

1 menjawab

Jawaban Terbaik

Anda dapat terlebih dahulu split nilai di kolom zips di ruang yang akan memberikan daftar, lalu gunakan saja explode

df['zips'] = df['zips'].str.split()
df.explode('zips')

KELUARAN:

    zips      lat       lng
0  11229  40.6943  -73.9249
1  11226  40.6943  -73.9249
2  11225  40.6943  -73.9249
3  90291  34.1139 -118.4068
4  90293  34.1139 -118.4068
5  90292  34.1139 -118.4068

Anda selanjutnya dapat mengubah tipe data kolom zips menjadi integer jika Anda menginginkannya dengan mengetikkan casting

df['zips'] = df['zips'].astype(int)
2
ThePyGuy 12 Mei 2021, 00:28