使用Pandas DataFrame的两列并添加一个新列。蟒蛇熊猫

Ash Upadhyay

我有一个看起来像这样的数据框

Currency    Amount    Country
EUR         12.06     France
USD         10.23     USA
INR         122.17    India
INR         422.01    India
USD         8.06      USA

我有一个函数,它将采用货币名称,即“货币”列,并使用“金额”转换为通用货币

def convert_an_amount(amount,curr,target_currency):
    if curr in c.currencies:
        return c.convert(amount, curr , target_currency)
    return np.nan

我想要做的是创建数据框的列

def convert_to_common(amount,curr_name,target_curr):
    currency_coverted_variable - 
    ... required code ...

我想要以下数据框

Currency    Amount    Country   Common Currency(EUR)
EUR         12.06     France    x
USD         10.23     USA       x
INR         122.17    India     x
INR         422.01    India     x
USD         8.06      USA       x

有什么办法可以编码此功能?我正在使用一个库,该库将转换函数中的值,但是如何促进数据框的创建?

c.convert的条件是一次只能转换一个值!

耶斯列尔

您可以使用以下DataFrame.apply功能:

df['new'] = df.apply(lambda x: convert_to_common(x['Amount'], x['Currency'], 'EUR'), axis=1)

我认为您可以为创建字典rate,然后在需要更好的性能时使用Series.mapAmount

eur = {'EUR':1, 'USD':2, 'INR':3}

df['new'] = df['Currency'].map(eur) * df['Amount']
print (df)
  Currency  Amount Country      new
0      EUR   12.06  France    12.06
1      USD   10.23     USA    20.46
2      INR  122.17   India   366.51
3      INR  422.01   India  1266.03
4      USD    8.06     USA    16.12

详细说明

print (df['Currency'].map(d))
0    1
1    2
2    3
3    3
4    2
Name: Currency, dtype: int64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用另一个列值的len()添加一个DataFrame列

大熊猫:使用其他两列中的任何一个添加新列

使用熊猫在DataFrame中创建一个由列表组成的新列

如何在Pandas中使用另一个数据框(与字符串列相关)添加新列

Pandas Dataframe使用Groupby从其他两个列的唯一值创建下一个未来日期的列

Python pandas dataframe将元素添加到先前的行值并创建一个新列

熊猫:使用Append添加新列,并使另一个变为NaN

蟒蛇。从Pandas列中提取字符串的最后一个字母

使用case_when()分配两个新列,而不是一个

如何使用熊猫将两列数据加一个+号合并为一个

熊猫-使用前一列的汇总创建一个新列

使用其他列的元素在熊猫中创建一个新列

添加新的pandas DataFrame列,其值是一个随机数数组,其长度从另一列中收集

使用熊猫基于另一个数据框向数据框添加列

Pandas Dataframe:创建一个新列,并基于两个不同的列在匹配的行中插入一个值

我想过滤出一个非数字值,并使用数据框(熊猫)中的其他两列来计算它的新值

熊猫:如果预先存在的列包含一些值,则使用“是”创建一个新列;如果该列的值为“”,则创建一个“否”

Pandas DataFrame:添加一个新列,其价格为作者的平均售价

基于唯一的多列索引的另一个DataFrame的新pandas DataFrame

使用 DataFrame.apply 使用 Pandas 中的特定列创建一个新列

我想使用 python 或 pandas 根据我的 csv 文件中的日期添加一个新列

Pandas:如何添加一个新列,结合其他列中的多个列表?

如何使用 Pandas.assign 从 Pandas 数据框索引创建一个新列?

如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

使用 for 循环在 Pandas 中创建一个新列?

Julia:如何通过使用 `transform` 或 `@transform` 添加两列在 DataFrames.jl 中创建一个新列?

使用 Pandas 设置一个新列

Pandas:创建一个新列,在其他两列中的值之间交替

Pandas - 添加一个新列,根据其他列值从数组中提取值