简体   繁体   中英

Create a row in pandas dataframe

I am trying to create a row in my existing pandas dataframe and the value of a new row should be a computation

I have a dataframe that looks like the below:

Rating  LE_St  % Total
1.00    7.58        74.55 
2.00    0.56        5.55 
3.00    0.21        2.04 
5.00    0.05        0.44 
6.00    1.77       17.42 
All    10.17       100.00

I want to add a row called "Metric" which is the sum of "LE_St" variable for "Rating" >= 4 and <6 divided by "LE_St" for "All" ie Metric = (0.05+1.77)/10.17 My output dataframe should look like below:

Rating  LE_St  % Total
1.00    7.58        74.55 
2.00    0.56        5.55 
3.00    0.21        2.04 
5.00    0.05        0.44 
6.00    1.77       17.42 
All    10.17       100.00
Metric  0.44

I believe your approach to the dataframe is wrong. Usually rows hold values correlating with columns in a matter that makes sense and not hold random information. the power of pandas and python is for holding and manipulating data. You can easily compute a value from a column or even all columns and store them in a "summary" like dataframe or in separate values. That might help you with this as well. for computation on a column (ie Series object) you can use the .sum() method (or any other of the computational tools ) and slice your dataframe by values in the "rating" column. for random computation of small statistics you will be rather off with excel :)

an example of a solution might look like this:

all = 10.17 # i dont know where this value comes from
df = df[df['rating'].between(4, 6, inclusive=True)]
metric = sliced_df['LE_ST'].sum()/all

print metric # or store it somewhere however you like

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM