如何在列值之前和在Pandas Python中添加特定列之后添加美元符号

时间:2018-10-19 08:00:52

标签: python-2.7 pandas

我想在这些值的总和之后的列值之前添加美元符号,我在下面给出了一些示例格式:

item_orders = [{'price':'$20','quantity':'2','order_item':'pizza','total_amount':'$40'},
              {'price':'$20','quantity':'1','order_item':'potato fry','total_amount':'$20'} ]

**代码**

available_cart_item = pd.DataFrame(item_orders)
available_cart_item.loc['Total'] = pd.Series(available_cart_item['total_amount'].sum(), index=['total_amount']) 
print(available_cart_item)

得到了类似的东西

below code result image

我想要这样的东西

Requied format using pandas

2 个答案:

答案 0 :(得分:2)

如果可能的话,最好使用不带@Component({ selector: 'app-test', template: ` <input type="text" value="{{greet}}"/> <button (click)="logMe()">Click </button> `, styleUrls: ['./test.component.css'] }) export class TestComponent implements OnInit { public greet=""; constructor() { } ngOnInit() { } logMe() { console.log(this.greet);} } 的数值来简化熊猫程序。

$

available_cart_item['total_amount'] = available_cart_item['total_amount'].str.strip('$') 除以strip,然后转换为$integer。最后添加sum$ s。

f-string

答案 1 :(得分:0)

由于$,您的DataFrame会将price和total_amount列视为字符串。

您可以通过去除'$'将它们转换为数值,然后可以按期望的方式对列中的值求和。

如果您想在DataFrame中用$显示总数,则可以使用熊猫样式(请参见文档here

from IPython.display import display

item_orders = [{'price':'$20','quantity':'2','order_item':'pizza','total_amount':'$40'},
               {'price':'$20','quantity':'1','order_item':'potato fry','total_amount':'$20'}]

available_cart_item = pd.DataFrame(item_orders)

# convert from strings to float values
available_cart_item['quantity'] = available_cart_item['quantity'].astype(int)
available_cart_item['total_amount'] = available_cart_item['total_amount'].str.strip('$').astype(float)
available_cart_item['price'] = available_cart_item['price'].str.strip('$').astype(float)

available_cart_item.loc['Total'] = pd.Series(available_cart_item['total_amount'].sum(), index=['total_amount']) .astype(float)
available_cart_item.fillna('', inplace=True)

# adds the $ through style formatting
formatters={'price': lambda x: '' if type(x)==str else '\u20B9{:.2f}'.format(x), 
            'total_amount': lambda x: '' if type(x)==str else '\u20B9{:.2f}'.format(x), 
            'Total': lambda x: '' if type(x)==str else '\u20B9{:.2f}'.format(x)}

display(available_cart_item.style.format(formatters))