I have a dataframe:
>>> dt
COL000 COL001 QT
STK_ID RPT_Date
STK000 20120331 2.6151 2.1467 1
20120630 4.0589 2.3442 2
20120930 4.4547 3.9204 3
20121231 4.1360 3.8559 4
STK001 20120331 -0.2178 0.9184 1
20120630 -1.9639 0.7900 2
20120930 -2.9147 1.0189 3
20121231 -2.5648 2.3743 4
STK002 20120331 -0.6426 0.9543 1
20120630 -0.3575 1.6085 2
20120930 -2.3549 0.7174 3
20121231 -3.4860 1.6324 4
And I want the columns values divided by 'QT' column, somewhat like this:
dt = dt/dt.QT # pandas does not accept this syntax
The desired output is:
STK_ID RPT_Date COL000 COL001 QT
STK000 20120331 2.615110188 2.146655745 1
20120630 2.029447265 1.172093561 1
20120930 1.484909881 1.306795608 1
20121231 1.034008443 0.963970609 1
STK001 20120331 -0.217808111 0.918355842 1
20120630 -0.981974837 0.394977675 1
20120930 -0.97157148 0.339633733 1
20121231 -0.641203355 0.593569537 1
STK002 20120331 -0.642567516 0.954323016 1
20120630 -0.178759288 0.804230898 1
20120930 -0.784982521 0.239117442 1
20121231 -0.871501505 0.408094317 1
How to do that?
The second method to divide two columns is using the div() method. It divides the columns elementwise. It accepts a scalar value, series, or dataframe as an argument for dividing with the axis. If the axis is 0 the division is done row-wise and if the axis is 1 then division is done column-wise.
You can extract a column of pandas DataFrame based on another value by using the DataFrame. query() method. The query() is used to query the columns of a DataFrame with a boolean expression.
Dividing two column using division operator Method 2: Pandas divide two columns using div () function The second method to divide two columns is using the div () method. It divides the columns elementwise.
How can we divide all values in a column by some number in a DataFrame? Suppose we’re dealing with a DataFrame df that looks something like this. We want to divide every number in column A by 100. We can divide by a number using div ().
no need to move column D to index, just do this: df [ ['B','C']] = df [ ['B','C']].div (df.A, axis=0). All other columns are preserved in the dataframe df
For example, if there is a column D that is not divided by A, the resulting data frame is missing column D and the column A. Any way to overcome this?
The /
operator for dv seems equal to div with default axis "columns". Set the axis to "index", then it'll work.
df = df.div(df.QT, axis='index')
Another tricky way is to transpose it first, divide it, and then transpose back:
df = (df.T / df.QT).T
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With