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(单位百分比)