繁体   English   中英

Map 特定行和列的值 - Python Pandas

[英]Map Value to Specific Row and Column - Python Pandas

我有一个数据集,我想在其中匹配索引行并更改该行中列的值。

我查看了 map 和 loc 并能够使用 df.loc 定位数据,但它会过滤掉该数据,我要做的就是在找到该行时更改该行上的列中的值。

什么是最好的方法 - 我的原始帖子可以在这里找到:

原帖

在 excel 中做起来很简单,但在 Pandas 中挣扎。

编辑:

到目前为止,我有这个似乎可行,但在总计算之后它包含很多数字以及 dtype: int64

import pandas as pd

df = pd.read_csv(r'C:\Users\david\Documents\test.csv')

multiply = {2.1: df['Rate'] * df['Quantity']}

df['Total'] = df['Code'].map(multiply)

df.head()

我该如何解决这个问题?

pandas 方法掩码在这里可能是一个不错的选择。 掩码需要两个主要的 arguments:一个条件和用于替换满足该条件的值的东西。

如果您尝试使用从多个 dataframe 列中提取值的公式替换值,您还需要传入一个额外的轴参数。

条件:这将类似于,例如:

df['Code'] == 2.1

替换值:这可以是单个值、系列/数据框,或(对您的目的最有价值的)函数/可调用。 例如:

df['Rate'] * df['Quantity']

:因为您将函数/可调用作为替换参数传递,所以您需要告诉mask()如何找到这些值。 它可能看起来像这样:

axis=0

所以总的来说,代码将如下所示:

df['Total'] = df['Code'].mask(
    df['Code'] == 2.1,
    df['Rate'] * df['Quantity'],
    axis=0
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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