Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于循环的问题-熊猫_Python_Regex_Pandas_For Loop - Fatal编程技术网

Python 用于循环的问题-熊猫

Python 用于循环的问题-熊猫,python,regex,pandas,for-loop,Python,Regex,Pandas,For Loop,我正试图用熊猫清理一个df。我有一个专栏,包含四个可能的内容: X.X磅 X.X磅 X.X盎司 楠 df.weight.fillna(0,原地=真) 对于[0,df.weight.size-1]中的i: 单元=df.重量[i] 而(单元格==0且ijust skip(当我尝试使用正则表达式时会导致问题,因此 while循环) 如果单元格有“盎司”->只保留数字和“.”;将数字转换为磅 如果单元格有“磅”或“磅”->只需保留数字和“.” 因此,理想情况下,像“1.0磅”这样的条目应该变成“1.

我正试图用熊猫清理一个df。我有一个专栏,包含四个可能的内容:

  • X.X磅
  • X.X磅
  • X.X盎司

  • df.weight.fillna(0,原地=真)
    对于[0,df.weight.size-1]中的i:
    单元=df.重量[i]
    而(单元格==0且i
    上面代码的目的是遍历“weight”行并检查:

    • 如果cell==0->just skip(当我尝试使用正则表达式时会导致问题,因此 while循环)
    • 如果单元格有“盎司”->只保留数字和“.”;将数字转换为磅
    • 如果单元格有“磅”或“磅”->只需保留数字和“.”
    因此,理想情况下,像“1.0磅”这样的条目应该变成“1.0”,像“1盎司”这样的条目应该变成“0.0625”

    取而代之的是,这段代码只更改第一次出现的('1.0 lbs'->'1.0'),而其他代码则保持不变

    输入:

    2.1磅-5.5磅-8.8盎司-0

    输出:

    Python中的2.1-5.5-0.55-0

     for i in [0, df.weight.size-1]:
    
    表示两个项目的列表
    [0,df.weight.size-1]
    0
    df.weight.size-1
    上的循环。您的意思可能是:

    for i in range(df.weight.size)
    
    或者类似的。我怀疑你的代码也有一些其他问题,但这是第一个问题


    顺便说一下,如果您有一些转换要应用于系列中的每个项目,请定义一个函数,用于对单个项目实现该转换,然后使用将其应用于所有项目。在这种情况下,如
    df.weight=df.weight.apply(您的函数)
    。如果转换依赖于序列中的其他值,事情会变得更复杂一些,但这里的情况似乎不是这样。

    请提供一些实际输入和预期输出数据。还请更正第一个
    语句下的缩进(
    语句完成:)ty,以便指出不是很简单吗
    for i in range(df.weight.size)