繁体   English   中英

如何使用带有逗号小数分隔符的 pandas.to_clipboard

[英]How to use pandas.to_clipboard with comma decimal separator

如何复制 DataFrame to_clipboard并将其粘贴到 excel 中,逗号为十进制?

在 R 中,这很简单。

write.table(obj, 'clipboard', dec = ',')

但我无法在 pandas to_clipboard中弄清楚。

我尝试更改失败:

import locale
locale.setlocale(locale.LC_ALL, '')

Spanish_Argentina.1252

或者

df.to_clipboard(float_format = '%,%')

从 Pandas 0.16 开始,您可以使用

df.to_clipboard(decimal=',')

to_clipboard()将额外的 kwargs 传递给to_csv() ,它还有其他有用的选项。

有一些不同的方法可以实现这一目标。 首先,可以使用float_format和您的语言环境,尽管使用不是那么简单(但一旦您知道就很简单:float_format 参数应该是一个可以调用的函数):

df.to_clipboard(float_format='{:n}'.format)

一个小插图:

In [97]: df = pd.DataFrame(np.random.randn(5,2), columns=['A', 'B'])

In [98]: df
Out[98]:
          A         B
0  1.125438 -1.015477
1  0.900816  1.283971
2  0.874250  1.058217
3 -0.013020  0.758841
4 -0.030534 -0.395631

In [99]: df.to_clipboard(float_format='{:n}'.format)

给出:

           A         B
0    1,12544  -1,01548
1   0,900816   1,28397
2    0,87425   1,05822
3 -0,0130202  0,758841
4 -0,0305337 -0,395631

如果您不想依赖locale设置但仍然有逗号十进制输出,您可以这样做:

class CommaFloatFormatter:
    def __mod__(self, x):
        return str(x).replace('.',',')

df.to_clipboard(float_format=CommaFloatFormatter())

或者只是在将数据写入剪贴板之前进行转换:

df.applymap(lambda x: str(x).replace('.',',')).to_clipboard()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM