Pandas(Python) to_clipboard 带逗号十进制参数
Pandas(Python) to_clipboard with comma decimal parameter
如何复制 DataFrame
to_cliboard 并将其粘贴到 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 = '%,%')
提前致谢
有一些不同的方法可以实现这一点。首先,它 是 可能与 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()
从 Pandas 0.16 开始你可以使用
df.to_clipboard(decimal=',')
to_clipboard() passes extra kwargs to to_csv(),其中还有其他有用的选项。
如何复制 DataFrame
to_cliboard 并将其粘贴到 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 = '%,%')
提前致谢
有一些不同的方法可以实现这一点。首先,它 是 可能与 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()
从 Pandas 0.16 开始你可以使用
df.to_clipboard(decimal=',')
to_clipboard() passes extra kwargs to to_csv(),其中还有其他有用的选项。