パンダの新機能であり、本当にstackoverflow(本当に)には、どんな提案も高く評価されています!pandas dataframe:列の計算を実行する
私は、このデータフレームDFを持っている:
col1 col2 col3
Date
2017-08-24 100 101 105
2017-08-23 102 102 107
2017-08-22 101 100 106
2017-08-21 103 99 106
2017-08-18 103 98 108
...
今私は、例えば、各列の値を持ついくつかの計算を実行したいのですが各値の対数を計算します。
私は、列をループし、結果の列で新しい一時データフレームを作成することをお勧めします。 この新しいデータフレームは、この例のようになります。
col1 RN LOG
Date
2017-08-24 100 1 2
2017-08-23 102 2 2,008600
2017-08-22 101 3 2,004321
2017-08-21 103 4 2,012837
2017-08-18 103 5 2,012837
は、だから私は、forループにこれを試してみました:
for column in df:
tmp_df = df[column]
tmp_df['RN'] = range(1, len(tmp_df) + 1) # to create a new column with the row number
tmp_df['LOG'] = np.log(df[column]) # to create a new column with the LOG
しかしこれはCOL1の隣に新しい列を印刷しますが、以下の1はありませんその他。結果は次のようになります。
tmp_df = tmp_df.assign(LN=np.log(df[column]))
しかし、この:
Name: col1, Length: 86, dtype: object
Date
2017-08-24 00:00:00 100
2017-08-23 00:00:00 102
2017-08-22 00:00:00 101
2017-08-21 00:00:00 103
2017-08-18 00:00:00 103
RN,"range(1, 86)"
LOG,"Date
2017-08-24 2
2017-08-23 2,008600
2017-08-22 2,004321
2017-08-21 2,012837
2017-08-18 2,012837
午後12時00分00秒...最初の部分での日付に
を添加し、私はまた、割り当てで何かを試してみました"AttributeError:"という結果が返されます。 "Series"オブジェクトには属性 'assign'がありません。 "
誰かが正しい方向に向けると本当にうれしいです。 ありがとう!
出力をどのように表示したいのですか?最後の結果が – johnchase
であるはずです。こんにちはJohn、私は各列に新しいデータフォームを作成しようとしています。元の列c1 - cNとその隣に計算値が含まれている必要があります。行番号とc1のLOG。私はこれを2番目のコードの断片に表示しようとしました – RazzleDazzle