如果相邻单元格中的条件为真,则更新值

时间:2018-07-27 21:04:01

标签: python pandas

我正在使用Pandas将CSV数据文件读取到DataFrame中。数据基本上是一列中的一堆维度,下一列是单位。

IE。

<body>
sign in
<h1>Form</h1>
<form th:action="@{/register}" th:object = "${userentity}" method="post">
<div>
    <label>name</label>
    <input th:field = "*{name}" />
    <p th:each="error:${#fields.errors('name')}"
       th:text="${error}">Validation error</p>
</div>
    <div>
    <label>login</label>
    <input type="text" th:field = "*{login}" />
    <p th:each="error:${#fields.errors('login')}"
       th:text="${error}">Validation error</p>
    </div>
<div>
    <label>password</label>
    <input type="password" th:field = "*{password}" />
    <p th:each="error:${#fields.errors('password')}"
       th:text="${error}">Validation error</p>
</div>
<div>
    <label>role</label>
    <select th:field = "*{role}">
        <option value="ROLE_USER">USER_Role</option>
        <option value="ROLE_ADMIN">ADMIN_Role</option>
    </select>
</div>
<div>
    <p><input type="submit" value = "Sign in" /></p>
</div>
</form>
</body>

然后,我想搜索DataFrame,找到该单位不符合其应有的所有位置(即lbs vs kg),然后将其转换为脚本其余部分使用的单位。

我很困惑如何基于一列进行搜索,读取该值,将该值除以/乘以转换因子,然后替换DataFrame中的值。

我无法使它正常工作

  Perameter  | measurement | unit
      Height |     72      |  inches
      Length |     20      |  mm

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

# Multiply the measurement by 25.4 where unit is inches
df.loc[df.unit == 'inches', 'measurement'] *= 25.4
# Replace `inches` with `mm` in unit column after it's been converted
df['unit'].replace('inches', 'mm', inplace=True)

>>> df
  Perameter  measurement unit
0    Height       1828.8   mm
1    Length         20.0   mm