的Python似乎做有趣的事情浮點數,它從輸入我給它產生不同的浮點數字,我想浮點數保持一樣的輸入。輸入輸出浮點數問題蟒蛇
在這裏,我有一個小的測試數據集:
import pandas as pd
df = {'ID': ['H1','H2','H3','H4','H5','H6'],
'Length': [72, 72, '', 72, 72,'' ],
'AA1': ['C','C','C','C','C','C'],
'AA2': ['W','W','W','W','W','W'],
'Freq': [0.14532872, 0.141868512,0.138408304, 0.14532872,0.138408304, 0.138408304 ],
'M': [-282.0570386,-279.1090993,-276.16116,-282.0570386,-274.7748657,-274.6160337]}
df = pd.DataFrame(df)
它應該的樣子:
df
Out[2]:
AA1 AA2 Freq ID Length M
0 C W 0.14532872 H1 72 -282.0570386
1 C W 0.141868512 H2 72 -279.1090993
2 C W 0.138408304 H3 -276.16116
3 C W 0.14532872 H4 72 -282.0570386
4 C W 0.138408304 H5 72 -274.7748657
5 C W 0.138408304 H6 -274.6160337
,但它實際上是這樣的,通知浮點數的區別列 '頻率' 和 'M':
df
Out[2]:
AA1 AA2 Freq ID Length M
0 C W 0.145329 H1 72 -282.057039
1 C W 0.141869 H2 72 -279.109099
2 C W 0.138408 H3 -276.161160
3 C W 0.145329 H4 72 -282.057039
4 C W 0.138408 H5 72 -274.774866
5 C W 0.138408 H6 -274.616034
當我運行我的腳本只是簡單的過濾掉行,我不想:
import pandas as pd
df = pd.read_csv('test.txt', sep='\t')
df2 = df[(df['Length'] != 0) & (df['AA1'] == 'C')& (df['AA2']== 'C')]
df2.to_csv('results.txt', sep = '\t', index=False)
的「RESULTS.TXT」文件包含奇怪的浮點數,這不是一樣的輸入,必須可以輸出浮點數作爲輸入,但我無法在線查找相關主題。
他們是相同的數字,只是四捨五入。 [這裏](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html)在文檔它表明的數字的默認顯示數量是如在6'display.precision' – roganjosh