2017-06-27 6 views
0

h2oデータフレーム内の既存のカラムにPythonで文字列値を付加するにはどうすればよいですか?列は数値で始まります。私はR H2Oでこれを行うことができましたが、私は苦労しているように見えるか、h2oのpythonバージョンでこの権利を得ることはできません。h2o pythonプレフィックス文字列を含むh2oデータフレーム内の既存のカラム

これはうまくいくようです。私はPythonでこれを実行しようとすると、

h2o.init() 
df = as.h2o(mtcars) 
df['mpg']=h2o.ascharacter(df['mpg']) 
df['mpg']=h2o.sub('','hey--------',df['mpg']) 
df 

はしかし、私はさまざまなエラーを取得します。時には数値列をエラーなしに文字列に調整することができますが、データフレームを見るとエラーが発生します。必要に応じてコードを投稿します。彼らは私がそれが比較的容易でなければならないと思うのと同じ機能だと考えると、私は何かを欠いているに違いない。

答えて

1

EDITED (今それを答える、元の質問を最初に答えていませんでした) これは、あなたが文字列値を持つ列に数値列を変換して、それらの値を置き換えます方法です。あなたが列名の新しいリスト(元列リストと同じ長さを渡す必要が:) 以下の間違った質問に答える

import h2o 
prostate = "http://h2o-public-test-data.s3.amazonaws.com/smalldata/prostate/prostate.csv" 
h2o.init() 
df = h2o.import_file(prostate) 
# creating your example column with all values equal to 23 
df['mpg'] = 23 
df['mpg'] = df['mpg'].ascharacter() 
df[1,'mpg'] # see that it is now a string 
df['mpg']=df['mpg'].sub('23', 'please-help-me----23') 
df 
Out[16]: ID CAPSULE AGE RACE DPROS DCAPS PSA VOL GLEASON mpg 
---- --------- ----- ------ ------- ------- ----- ----- --------- -------------------- 
    1   0  65  1  2  1 1.4 0   6 please-help-me----23 
    2   0  72  1  3  2 6.7 0   7 please-help-me----23 
    3   0  70  1  1  2 4.9 0   6 please-help-me----23 
    4   0  76  2  2  1 51.2 20   7 please-help-me----23 
    5   0  69  1  1  1 12.3 55.9   6 please-help-me----23 
    6   1  71  1  3  2 3.3 0   8 please-help-me----23 
    7   0  68  2  4  2 31.9 0   7 please-help-me----23 
    8   0  61  2  4  2 66.7 27.2   7 please-help-me----23 
    9   0  69  1  1  1 3.9 24   7 please-help-me----23 
    10   0  68  2  1  2 13  0   6 please-help-me----23 

[380 rows x 10 columns] 

()。表示されます

import h2o 
prostate = "http://h2o-public-test-data.s3.amazonaws.com/smalldata/prostate/prostate.csv" 
h2o.init() 
df = h2o.import_file(prostate) 
print(df.columns) 
columns[0] = 'NEW' 
df.columns = columns 
print(df.columns) 

df.columns = new_column_list

例えば、私は列IDNEWと名前を変更することができます

Checking whether there is an H2O instance running at http://localhost:54321. connected. 
-------------------------- ------------------------------ 
H2O cluster uptime:   9 hours 31 mins 
H2O cluster version:  3.10.4.8 
H2O cluster version age: 1 month and 6 days 
H2O cluster name:   H2O_from_python_laurend_tzhifp 
H2O cluster total nodes: 1 
H2O cluster free memory: 3.276 Gb 
H2O cluster total cores: 8 
H2O cluster allowed cores: 8 
H2O cluster status:   locked, healthy 
H2O connection url:   http://localhost:54321 
H2O connection proxy: 
H2O internal security:  False 
Python version:    3.5.1 final 
-------------------------- ------------------------------ 
Parse progress: |████████████████████████████████████████████████████████████████████████████| 100% 
['ID', 'CAPSULE', 'AGE', 'RACE', 'DPROS', 'DCAPS', 'PSA', 'VOL', 'GLEASON'] 
['NEW', 'CAPSULE', 'AGE', 'RACE', 'DPROS', 'DCAPS', 'PSA', 'VOL', 'GLEASON'] 
+0

申し訳ありませんが、私は列名を変更するつもりはありませんよ、列内の実際の値です。彼らが23の列の行1の価値があるなら、私はそれが正面にそのテキストを提供する 'please-help-me ---- 23'であることを望むでしょう。 – jack

+0

これは多少関連しているようですね? https://0xdata.atlassian.net/browse/PUBDEV-3729 df ['mpg'] = df ['mpg']。ascharacter()を使用するとエラーが発生します。 – jack

+0

@jackが答えを更新しました、これがあなたが探しているものだと願っています – Lauren

関連する問題