2016-11-03 4 views
0

ちょうどPandasを学び始めました。PythonでのDataFrameとSeriesでのストリング操作

私のデータセットでは、特定の部分文字列を削除する文字列操作を実行しています。

Year Australian Open Wimbledon French Open US Open 
1999 Name1    Name2  Name3   Name4 
2000 SUI:Name6(1/4)  Name7  .    USA:Name(1/14) 


s1 = input_dataframe["Wimbledon"].str.replace('\(.*|.*\:','') 
s2 = input_dataframe["French Open"].str.replace('\(.*|.*\:','') 
s3 = input_dataframe["US Open"].str.replace('\(.*|.*\:','') 
s4 = input_dataframe["Australian Open"].str.replace('\(.*|.*\:','') 

は今、私は

pd.concat([s1,s2,s3,s4],axis=1) 

を実行することにより、データフレームの中にこれらの4シリーズをconcantenateしようとしましたが、新しいデータフレームは、古い前に、文字列操作にデータフレームなどを示しています。 input_dataframeは以下の通りです変更されたデータ。

私のデータフレームで文字列操作を実行する最適かつ効果的な方法は何ですか?そして、シリーズや追加の変数を作成せずに、データフレーム上で文字列演算を実行する方法はありますか?

+0

あなたは「新しいDataFrameは文字列操作の前に古いDataFrameを表示する」と言っていますが、新しいDataFrameの外観のサンプルを投稿できますか? –

答えて

0

私はあなたがdfに出力を割り当てる必要があると思うが、列Yearと最後reset_indexから最初set_indexstr.replaceのような文字列関数はのみSeriesで動作するので(、

input_dataframe = input_dataframe.set_index('Year') 
s1 = input_dataframe["Wimbledon"].str.replace('\(.*|.*\:','') 
s2 = input_dataframe["French Open"].str.replace('\(.*|.*\:','') 
s3 = input_dataframe["US Open"].str.replace('\(.*|.*\:','') 
s4 = input_dataframe["Australian Open"].str.replace('\(.*|.*\:','') 

df = pd.concat([s1,s2,s3,s4],axis=1).reset_index() 
print (df) 
    Year Wimbledon French Open US Open Australian Open 
0 1999  Name2  Name3 Name4   Name1 
1 2000  Name7   . Name   Name6 

いくつかのより一般的な解決策が必要な場合は、list comprehensionを必要としますDataFrameの列):

df1 = input_dataframe.set_index('Year') 
df2 = pd.concat([input_dataframe[col].str.replace('\(.*|.*\:','') for col in df1], axis=1) 
df2 = df2.reset_index() 
print (df2) 
    Year Australian Open Wimbledon French Open US Open 
0 1999   Name1  Name2  Name3 Name4 
1 2000   Name6  Name7   . Name 

または使用DataFrame.replace

data = input_dataframe.replace({'\(.*|.*\:':''}, regex=True) 
print (data) 
    Year Australian Open Wimbledon French Open US Open 
0 1999   Name1  Name2  Name3 Name4 
1 2000   Name6  Name7   . Name 
関連する問題