Python 使用现有列在数据框中添加额外列

Python 使用现有列在数据框中添加额外列,python,pandas,database,dataframe,csv,Python,Pandas,Database,Dataframe,Csv,我有以下数据框: Movie Budget Worldwide Gross Year 0 2012 200000000 791217826 2009 1 Aladdin 183000000 1050693953 2019 2

我有以下数据框:

                                  Movie     Budget  Worldwide Gross  Year
0                                  2012  200000000        791217826  2009
1                               Aladdin  183000000       1050693953  2019
2                   Alice in Wonderland  200000000       1025468216  2010
3                               Aquaman  160000000       1148485886  2018
4                                Avatar  237000000       2847246203  2009
因此,我必须使用:

usuario = int(input('Cual es la pelicula que desea buscar? '))
opcion1 = datos[datos["Movie"] == usuario ]
以查找用户提供的特定电影

通过这样做,我必须创建一个名为“利润百分比”的附加列:(全球毛额/预算*100)…我尝试了以下代码,但没有成功

datos["porcentage de ganancia"] = datos["Worldwide Gross"] / datos["Budget"] * 100

非常感谢您的帮助!

以下是您的熊猫数据框:

import pandas as pd 


df = pd.DataFrame(
    [
        ('2012', 200000000, 791217826, 2009), 
        ('Aladdin', 183000000, 1050693953, 2019), 
        ('Alice in Wonderland', 200000000, 1025468216, 2010), 
        ('Aquaman', 160000000, 1148485886, 2018), 
        ('Avatar', 237000000, 2847246203, 2009), 
    ], 
    columns=['Movie', 'Budget', 'Worldwide Gross', 'Year']
)

print(df)

                 Movie     Budget  Worldwide Gross  Year
0                 2012  200000000        791217826  2009
1              Aladdin  183000000       1050693953  2019
2  Alice in Wonderland  200000000       1025468216  2010
3              Aquaman  160000000       1148485886  2018
4               Avatar  237000000       2847246203  2009
这个很好用

df["porcentage de ganancia"] = df["Worldwide Gross"] / df["Budget"] * 100
print(df) 

                 Movie     Budget  Worldwide Gross  Year  porcentage de ganancia
0                 2012  200000000        791217826  2009              395.608913
1              Aladdin  183000000       1050693953  2019              574.149701
2  Alice in Wonderland  200000000       1025468216  2010              512.734108
3              Aquaman  160000000       1148485886  2018              717.803679
4               Avatar  237000000       2847246203  2009             1201.369706

因此,我怀疑您的
dtypes
可能有问题。您可以使用
df.dtypes
检查它们。如果这是问题所在,这应该可以解决问题:

df["porcentage de ganancia"] = df["Worldwide Gross"].astype(int) / df["Budget"].astype(int) * 100