Bir sütunun (string) içeriğine dayalı muliple satırlara bir satır kırın

oy
0

Benim dataframe biri kolon bir değişken numarası vardır \niçeriği içeride s ve ben son dataframe tek satırda olmak üzere her bir hat istiyorum.

Bu en az bir örnek aşağıda verilmektedir:

df = pd.DataFrame({'a': ['x', 'y'], 'b':['line 1\nline 2\nline 3', 'line 1' ]})

Yani bu başlangıç ​​dataframe üretir:

    a   b
0   x   line 1\nline 2\nline 3
1   y   line 1 

Ben bu gibi olmak istiyorum:

    a   b
0   x   line 1
1   x   line 2
2   x   line 3
3   y   line 1

Ben her dönüştüren işlevi yoktur inşa edilmiştir gördüğüm patternile yeni bir sütuna str.extractaşağıda komutu, örneğin, bu denedim budur:

df['b'].str.extract(pat='(.*)\n(.*)', expand=True)

Yani biraz ilginç çıktı üretir:

    0       1
0   line 1  line 2
1   NaN     NaN

Veri sütunları ve satırları değil, eşleşen tüm modeller konusunda ikiye bölünmüş durumda ve yerine ve sırayla orijinal dataframe geri koymak nasıl belli değil, çünkü Ama bu, uygulanabilir bir çözüm değildir. Her ne kadar girişlerin sırası, korunacak alakalı dataframe indexdeğildir.

Tüm desenleri yakalamak için, bunu yapmak mümkün olacaktır:

df['b'].transform(lambda x: x.split('\n'))

Yani, bu çıkış verir:

0    [line 1, line 2, line 3]
1                    [line 1]

Ama yine, ben arzu durumuna bundan ilerleme sağlamak için bir yol göremiyorum.

Oluştur 10/10/2019 saat 00:50
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
2

Kullanmayı deneyin str.splitveexplode

df = df.set_index('a').b.str.split('\\n').explode().reset_index()

Out[153]:
   a       b
0  x  line 1
1  x  line 2
2  x  line 3
3  y  line 1
Cevap 10/10/2019 saat 00:55
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more