大熊猫遍历行并从另一列中删除一列中的字符串值

时间:2020-02-24 12:34:33

标签: python pandas

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

+-----------------+----------+--------------+
| carManufacturer | carModel |   carType    |
+-----------------+----------+--------------+
| VW              | POLO     | 1.4 TDI      |
| VW              | POLO     | POLO 1.4 TDI |
| VW              | POLO     | 1.6 TDI      |
| VW              | POLO     | 1.4          |
| VW              | POLO     | POLO 1.6 TDI |
|+-----------------+----------+--------------+

我要遍历行,检查carModel中是否包含天气carType,如果要删除它。因此,与其使用POLO 1.4 TDI,不如使用1.4 TDI。

一个约束-一些carModels可以是单个字母长(例如1A)。在这种情况下,请跳过更换,而不执行任何操作。脚本仅适用于carModels

len(carModel)>1

到目前为止,我有:

for row in carsML.itertuples():
    if len(row.carModel) > 1:
        carsML.iloc[row.Index].carType = row.carType.replace(row.carModel,"")

但这并没有改变任何东西。我不知道为什么。

3 个答案:

答案 0 :(得分:4)

如果我对您的理解很好,那么以下一线工作可以帮助您完成工作:

carsML.carType = carsML.apply(lambda row: row.carType.strip(row.carModel) if len(row.carModel) > 1 else row.carType, axis=1)

答案 1 :(得分:2)

OneWayToSourceLogout一起使用:

AccountController

输出:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout(LogoutInputModel model)
{
    ...

    return Redirect("http:// client url"); // added

    //return View("LoggedOut", vm); // commented out
}

答案 2 :(得分:1)

您是如何声明dataFrame的? 我做了测试:

>>> raw_data = {
...   'carManufacturer': ['VW','VW','VW','VW','VW'],
...   'carModel': ['POLO','POLO','POLO','POLO','POLO'],
...   'carType': ['1.4 TDI', 'POLO 1.4 TDI', '1.6 TDI', '1.4', 'POLO 1.6 TDI']
>>> df = pd.DataFrame(raw_data, columns=["carManufacturer", "carModel", "carType"])
>>> df
  carManufacturer carModel       carType
0              VW     POLO       1.4 TDI
1              VW     POLO  POLO 1.4 TDI
2              VW     POLO       1.6 TDI
3              VW     POLO           1.4
4              VW     POLO  POLO 1.6 TDI

完成后:

>>> for row in df.itertuples():
...   if len(row.carModel) > 1:
...      df.iloc[row.Index].carType = row.carType.replace(row.carModel,"")
...
>>> df

这就是结果:

>>> df
  carManufacturer carModel   carType
0              VW     POLO   1.4 TDI
1              VW     POLO   1.4 TDI
2              VW     POLO   1.6 TDI
3              VW     POLO       1.4
4              VW     POLO   1.6 TDI

它运行完美。