2016-04-12 7 views
1

簡単にするため、文字列値を含む単一の列を持つデータフレームがあるとします。私は連結された形式の文字列内の各文字のASCII値を表す整数を含む2番目の列を作成したいと思います。下記を参照してください。列Aは私たちが持っているものとし、列Bは私たちが望むものだとします。Pandas Dataframe String列を連結Intに

Column_A Column_B 
    JJIIV 7474737386 
    OOEWW 7979698787 
    ZZXSW 9090888387 
    QLHMN 8176727778 
    WESDFG 876983687071 

オクラホマので、A列の最初の値を見て、JJIIVは、我々がアップ「J」に次の1)ブレークJJIIVを行うことによって、列Bに結果が出て、「J」、「私は、 '、' I '、' V ' 2)各文字のord()を取る。 ord( 'J')== 74など3)それぞれのord値を連結してbigintを作成します。

これまでのところ、私は次のことを達成できました。私はデータフレームに余分な列を作成し、このロジックを各行に '適用'する方法がわかりません。

あなたが値の文字列を作成するために、序数値に参加する lambdaappplyを使用することができます
import pandas as pd 

raw_data = {'string_column': ['JJIIV', 'OOEWW', 'ZZXSW', 'QLHMN', 'WESDFG']} 
df = pd.DataFrame(raw_data, columns = ['string_column']) 

for i in df['string_column']: 
    print([ord(c) for c in i]) 

答えて

0

In [114]:  
df['ord'] = df['string_column'].apply(lambda x: ''.join([str(ord(e)) for e in x])).astype(np.int64) 
df 

Out[114]: 
    string_column   ord 
0   JJIIV 7474737386 
1   OOEWW 7979698787 
2   ZZXSW 9090888387 
3   QLHMN 8176727778 
4  WESDFG 876983687071 

あなたが最後のエントリが勝ったことに注意して、変換することint64dtypeをキャストすることができます32ビットのintに収まらない