Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 如何将不同的格式应用于数据帧中的不同列?

Python 如何将不同的格式应用于数据帧中的不同列?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,在本文中,我们看到了一个关于对数据帧中的不同列应用不同格式的问题。用户的解决方案如下所示 format_dollar = "${0:.2f}".format format_percent = "{0:.2f}%".format df_agg[['YTD Open', 'REV2', 'Real_Profit']] = df_agg[['YTD Open', 'REV2', 'Real_Profit']].applymap(format_dollar) d

在本文中,我们看到了一个关于对数据帧中的不同列应用不同格式的问题。用户的解决方案如下所示

format_dollar = "${0:.2f}".format
format_percent = "{0:.2f}%".format

df_agg[['YTD Open', 'REV2', 'Real_Profit']] = df_agg[['YTD Open', 'REV2', 'Real_Profit']].applymap(format_dollar)
df_agg[['Percent_Profit']] = df_agg[['Percent_Profit']].applymap(format_percent)

df_agg.tail()
当我尝试运行此操作时,出现以下错误:

ValueError: Unknown format code 'f' for object of type 'str'

我想格式化三个特定的列,比如
$1000000.00
,我想格式化一个特定的列,比如
120.50%
。我觉得熊猫应该有一些内置的东西,但在谷歌搜索了一段时间后,我没有发现任何有用的东西。有没有一种简单的方法可以完成我上面描述的任务?

您可以先将列转换为数字

df_agg['Percent_Profit'] = pd.to_numberic(df_agg['Percent_Profit']).applymap(format_percent)

可以先将列转换为数字

df_agg['Percent_Profit'] = pd.to_numberic(df_agg['Percent_Profit']).applymap(format_percent)

如果数据包含格式化为字符串的数字,则会出现问题。您只需要首先将数据类型转换为float,然后应用映射

df_agg[['YTD Open', 'REV2', 'Real_Profit']] = df_agg[['YTD Open', 'REV2', 'Real_Profit']].astype(float).applymap(format_dollar)
df_agg[['Percent_Profit']] = df_agg[['Percent_Profit']].astype(float).applymap(format_percent)

如果数据包含格式化为字符串的数字,则会出现问题。您只需要首先将数据类型转换为float,然后应用映射

df_agg[['YTD Open', 'REV2', 'Real_Profit']] = df_agg[['YTD Open', 'REV2', 'Real_Profit']].astype(float).applymap(format_dollar)
df_agg[['Percent_Profit']] = df_agg[['Percent_Profit']].astype(float).applymap(format_percent)

还有一件事…我如何将“利润百分比”列乘以100?我如何将“利润百分比”列乘以100?我如何将“利润百分比”列乘以100?我如何将“利润百分比”列乘以100(单位百分比)