Ich habe folgende DatenWie in Pandas
Description
4 GB+ 2 GB Night 3G/2G Data
Unlimited Local & STD Calls + 500 MB 3G/2G Data (T&C apply)
9GB + 8GB night data+ 6GB next night data
8 GB data 4G
Was ich will, ist zu extrahieren Datenmenge (4 GB usw.) und kombinierte sie in einer einzigen Spalte ein einziges Muster in einem String mehr als einmal extrahieren
df2=df['Description'].str.extract('([0-9]+(\.[0-9][0-9]?)?\s?GB|[0-9]+(\.[0-9][0-9]?)?\s?MB)')
ich verwendet habe Pandas funktionieren extractall()
auch, aber beide extract
und extractall()
mich so
0 1 2
4GB Nan Nan #2 gb is missing
500MB Nan Nan
9GB Nan Nan # 8gb 6 gb is missing
8Gb Nan Nan
führen zu geben
Wo liege ich falsch? Auch wenn die Zeilen mit df.fillna(' ')
Kombinieren ich erhalte eine Ausgabe wie diese
0
4GB,2GB,
500MB, ,
9GB,8GB,6GB
8GB, ,
obwohl das, was ich will
ist0
4GB,2GB
500MB
9GB,8GB,6GB
8GB
Ich möchte nicht spaces.Is es eine Möglichkeit, in Pandas, die Daten zu bekommen das obige Format? Ich bin ein Anfänger in Python, weiß nicht, wie man das erreicht. Wenn es einen anderen Weg gibt, erwähnen Sie bitte.
EDIT:
dies der vollständige Code:
df2=df['Description'].str.extractall('([0-9]+(\.[0-9][0-9]?)?\s?GB|[0- 9]+(\.[0-9][0-9]?)?\s?MB)')
#print df2
df2[1].fillna("",inplace=True);
df2[2].fillna("",inplace=True)
print df2
df3=df2[0]+','+df2[1]+','+df2[2];
print df3
Warum tun Sie nicht .fillna ("")? – Tbaki
Können Sie auch einen Beispielcode erben, der Ihren Datenrahmen generiert? – Tbaki
sogar mit .fillna ('') kommen die Kommas mit Leerzeichen –