Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.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 Pandas需要将0.0浮点转换为空字符串,而不会弄乱Pandas中的其他数字_Python_Pandas - Fatal编程技术网

Python Pandas需要将0.0浮点转换为空字符串,而不会弄乱Pandas中的其他数字

Python Pandas需要将0.0浮点转换为空字符串,而不会弄乱Pandas中的其他数字,python,pandas,Python,Pandas,我从API中提取数据,并使用Pandas进行计算和转换 这些计算产生了浮点数,我必须保留到小数点后第二位。0.03、0.04、0.0等 然后,我将这些数据存储到BigQuery中,并在GoogleDataStudio(GDS)中可视化。问题是DataStudio无法处理0数字的除法。所以我需要从我的系列中删除0.0。我认为这样做的方式是将其转换为字符串,删除0.0并使其为空,例如.str.replace('0.0','') 但是当我去掉0.0时,我也去掉了所有其他小数的前导。当我对序列进行.ro

我从API中提取数据,并使用Pandas进行计算和转换

这些计算产生了浮点数,我必须保留到小数点后第二位。0.03、0.04、0.0等

然后,我将这些数据存储到BigQuery中,并在GoogleDataStudio(GDS)中可视化。问题是DataStudio无法处理0数字的除法。所以我需要从我的系列中删除0.0。我认为这样做的方式是将其转换为字符串,删除0.0并使其为空,例如.str.replace('0.0','')

但是当我去掉0.0时,我也去掉了所有其他小数的前导。当我对序列进行.round(小数=3)时,0.0只是保持为0.0,所以我不能删除0.00

你有没有想过如何把这一系列的数字转换成空的0.0

范例

#In my dataframe I have something like Quantities
df = pd.DataFrame({'Store': ['X', 'Y', 'Z', 'A', 'B'],
                 'Quantities': ['0.0', '0.034', '0.402', '1.0', '0.0']})

#I want to remove 0.0 and make it blank, but keep 0.034 etc
df = pd.DataFrame({'Store': ['X', 'Y', 'Z'],
                 'Quantities': ['', '0.034', '0.402', '1.0', '']})
使用
掩码

df = pd.DataFrame({'Store': ['X', 'Y', 'Z', 'A', 'B'],
                 'Quantities': ['0.0', '0.034', '0.402', '1.0', '0.0']})

df['Quantities'] = df['Quantities'].mask(df['Quantities']=='0.0', '')
print(df)
输出:

  Store Quantities
0     X           
1     Y      0.034
2     Z      0.402
3     A        1.0
4     B           

你能发布一个示例数据帧和设计输出吗?我想你需要像
df.loc[df.calc.eq(0)]=#做点什么
或者如果你想删除带零的行:
df.mask(df.calc.eq(0)).dropna()
我肯定不想删除,我在我的问题中添加了一个例子。试试
df.mask(df.eq('0.0'))。fillna('
什么都没做。保持0.0这正是我所需要的!非常感谢你。