2016-06-30 4 views
2

私は現在、パンダのドキュメンテーションの中で深く迷っています。私の問題はこれです:Pandasのカラムをそれ自身の機能に置き換える?

私は

col1 col2 
1  A 
4  B 
5  X 

簡単なデータフレームを持っている私の目的のようなものに適用することです:

広場はきれいに定義された関数である
df['col1'] = df['col1'].apply(square) 

を。 ただし、この操作ではエラー警告が表示され、誤った結果が表示されます。

値はDataFrameのスライスのコピーに設定しようとしています。 代わりに.loc [row_indexer、col_indexer] = valueを使用してみてください

私はこのことや、それが指すドキュメントを理解できません。私のワークフローは線形です(これにより、より広い範囲のソリューションが実行可能になります)。

パンダ0.17.1とPython 2.7

すべてに感謝を助けます。

+1

は、あなたの質問にあなたの機能を追加することはできますか? – jezrael

+0

MaxUの機能で十分です。私は、この質問が尋問のために "広すぎる"制限を破るかどうか、そして/または私が実装にいくつかの問題があり、それが原因でエラーが発生したのかどうか疑問に思っています。エラーフラグ(およびPython 2.7)を持たない –

答えて

1

それは私(パンダ0.18.1)のために適切に動作します。それはまた、あなたの関数の実装に依存する場合があります

In [31]: def square(x): 
    ....:  return x ** 2 
    ....: 

In [33]: df 
Out[33]: 
    col1 col2 
0  1 A 
1  4 B 
2  5 X 

In [35]: df.col1 = df.col1.apply(square) 

In [36]: df 
Out[36]: 
    col1 col2 
0  1 A 
1 16 B 
2 25 X 

PS ...

+0

? –

+0

@draco_alpine、nope、エラーはありません。しかし、私はPython 3.5.1とPandas 0.18.1を使用しています。このケースでは、パンダのバージョンがはるかに重要だと思います。どんなパンダバージョンがありますか? – MaxU

+0

申し訳ありませんが、役に立たないです。私はちょうど0.17.1にある - 私はそれが更新されたと仮定していた... –

関連する問題