Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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_Pandas_Dataframe_Text Parsing - Fatal编程技术网

Python 将数字从列中拉出,将数字放在小数点的右边。。?

Python 将数字从列中拉出,将数字放在小数点的右边。。?,python,pandas,dataframe,text-parsing,Python,Pandas,Dataframe,Text Parsing,我在一个数据帧中有一个初始列,其中包含一些信息(项目的重量和计数),我正试图提取这些信息并进行一些计算 当我取出所需的数字时,如果我打印出存储序列的变量,一切看起来都很好 下面是我如何从初始列解析出数字的代码。我只是堆积了一些方法,并使用正则表达式来梳理它 [希望这很容易阅读,经过一些清理,我的目标重量数字在拆分后始终位于倒数第三位()//并且我的目标计数数字在拆分后始终位于倒数第二位] weight=df['Item'].str.replace('1.0gal','128oz').str.re

我在一个数据帧中有一个初始列,其中包含一些信息(项目的重量和计数),我正试图提取这些信息并进行一些计算

当我取出所需的数字时,如果我打印出存储序列的变量,一切看起来都很好

下面是我如何从初始列解析出数字的代码。我只是堆积了一些方法,并使用正则表达式来梳理它

[希望这很容易阅读,经过一些清理,我的目标重量数字在拆分后始终位于倒数第三位()//并且我的目标计数数字在拆分后始终位于倒数第二位]

weight=df['Item'].str.replace('1.0gal','128oz').str.replace('YYY','').str.split()

count=df['Item'].str.replace('NN','').str.split().str[-2].replace('XX','1ct').str.extract('(\d+),expand=False).astype(np.float64)

变量“weight”返回一个类似[32,32,0.44,5.3,64]的序列,这就是我想要看到的

然而,当我试图将这些值设置到dataframe中的一个新列中时,它会将所有内容保留在小数点的右边;例如,我的新列显示为[32,32,0,5,64]

这也让我的计算专栏失去了意义

但是,如果我在一个单独的变量中进行计算并打印出来,它会显示正确(小数和全部)。但是将其分配给数据帧会使我的权重为零,并会导致此后的任何计算出错


非常感谢您的任何帮助

将序列值强制转换为字符串, 然后,在将值插入DataFrame列后,将该列转换为数字。比如说,

weight = weight.asType(str)
df['new_column'] = weight
df['new_column'] = pd.to_numeric(df['new_column'])


签出:

示例数据将对您的问题有很大帮助。屏幕截图可能会有所帮助。@PGSystemTester。请不要鼓励发布截图,除非涉及gui或绘图!鉴于
\d
不允许您提取浮点数,我将不得不要求实际的MCVE。