0
パンダでは、'Windows 7', 'Windows 10', 'Linux', 'Mobile iOS 9.1', 'OS X 10.12'
などのさまざまなオペレーティングシステムの分類を持つ['name']
という列があります。これは文字列です。パンダの行の上に関数を適用する
私はより一般的なバージョンになります新しい列['type']
を作成するには、この機能を使用することを期待しています:
def name_group(row):
if 'Windows' in row:
name = 'Microsoft Windows'
elif 'iOS' in row:
name = 'Apple iOS'
elif 'OS X' in row:
name ='Apple Macintosh'
elif 'Macintosh' in row:
name = 'Apple Macintosh'
elif 'Linux' in row:
name = 'GNU/Linux'
else:
name = 'Other'
return name
それは私は、単一の文字列変数に渡すことによって、機能をテストするときに正しく動作しますが、用何らかの理由で、このような関数をdfに適用すると、各行に対して「その他」だけが返されます。
new_df['type'] = new_df.apply(name_group, axis=1)
これを引き起こしている可能性がどのように任意の考え?
ありがとうございました。その後、
lambda
機能を必要とあまりにも列の名前を渡しDataFrame.apply
を使用したい場合はしかし!それは素晴らしい仕事でした。唯一の変更は、関数の最後に 'return str(name)'を返すように 'return name'を変更することです。 – cdc200
あなたは大歓迎です!私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。答えの横にあるチェックマーク( '✓')をクリックしてグレー表示にします記入してください。ありがとう。 – jezrael