2016-07-19 13 views
3

Ich versuche effektiv, eine Text-zu-Spalten-Aktion (aus MS Excel) auszuführen, aber in Pandas.Teilen Sie die Spalte einer Datenrahmenspalte in zwei Datenrahmenspalten.

Ich habe einen Datenrahmen, der Werte enthält wie: 1_1, 2_1, 3_1, und ich möchte nur die Werte rechts vom Unterstrich nehmen. Ich habe herausgefunden, wie man den String aufteilt, was mir eine Liste der zerbrochenen Strings gibt, aber ich weiß nicht, wie ich das in verschiedene Dataframe-Spalten aufteilen soll.

Hier ist mein Code:

import pandas as pd 

test = pd.DataFrame(['1_1','2_1','3_1']) 
test.columns = ['values'] 

test = test['values'].str.split('_') 

ich etwas bekommen wie: [1, 1], [2, 1], [3, 1].

Was ich versuche zu bekommen, sind zwei getrennte Säulen:

col1: 1, 2, 3 col2: 1, 1, 1

Gedanken? Vielen Dank im Voraus für Ihre Hilfe

Antwort

3

Verwenden expand=True wenn die split tun mehrere Spalten zu erhalten:

test['values'].str.split('_', expand=True) 

Wenn nur ein Unterstrich ist, und Sie kümmern sich nur um den Wert auf der rechten Seite, könnten Sie verwenden:

test['values'].str.split('_').str[1] 
2

Sie sind in der Nähe:

Anstatt nur Splitting dies versuchen:

test2 = pd.DataFrame(test['values'].str.split('_').tolist(), columns = ['c1','c2']) 
Verwandte Themen