有一些不同的方式來實現這一目標。首先,它是可能與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()
'to_clipboard'採用與'to_csv'相同的參數。但我認爲最主要的是你的float格式沒有正確指定。你可能需要弄亂你的區域設置:http://stackoverflow.com/questions/6633523/how-can-i-convert-a-string-with-dot-and-comma-into-a-float- python – 2015-02-05 18:41:53
@PaulH我認爲'read_csv'使用了[格式規範](https://docs.python.org/2/library/string.html#format-specification-mini-language),因此' float_format =「:n」'可以工作(如果你設置了你的語言環境)。它似乎沒有工作,雖然(TypeError不是所有的參數覆蓋)。 :( – 2015-02-05 20:24:51
我嘗試過'df.to_clipboard(float_format =':n')'但顯示出'TypeError:'str'對象不可調用' – Diego 2015-02-05 20:41:57