我有一個數據框我希望在Python 2.7中將幾行寫入文件和記錄器。 print(dataframe.iloc[0:4])
輸出數據框中列標題和前4行的好網格。然而logging.info(dataframe.iloc[0:4])
拋出:熊貓的寫入或日誌打印輸出Dataframe
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 87: ordinal not in range(128)
這裏是勸慰輸出,工作直接向控制檯或print()
(注意²
):
In[89]: d.iloc[0:4] OR print(d.iloc[0:4])
Out[89]:
ISO ID_0 NAME_0 ID_1 NAME_1 ID_2 NAME_2 Area(km.²) Pop2001_Cen Pop2010_Cen HHold2010 Hhold_Size
0 ARG 12 Argentina 2 Ciudad Autónoma de Buenos Aires NaN NaN 203.0 2776138.0 2890151 1150134.0 2.512882
1 ARG 12 Argentina 2 Ciudad Autónoma de Buenos Aires 2001.0 Comuna 1 NaN 171975.0 205886 84468.0 2.437444
2 ARG 12 Argentina 2 Ciudad Autónoma de Buenos Aires 2002.0 Comuna 2 NaN 165494.0 157932 73156.0 2.158839
3 ARG 12 Argentina 2 Ciudad Autónoma de Buenos Aires 2003.0 Comuna 3 NaN 184015.0 187537 80489.0 2.329971
一樣file.write(dataframe.iloc[0:4])
等爲一體的一個列標題包含非ASCII字符。我嘗試過各種各樣的decode()
,encode()
等,但無法避免這個錯誤。
print(d.iloc[0:4])
工作,所以另一種方法是使用print(d.iloc[0:4], file=f)
,但即使與from __future__ import print_function
我得到上面的ascii編碼錯誤。
複製這一問題的其他方法是logging.info('Area(km.²)')
或'Area(km.²)'.decode()
我怎樣才能使這個數據幀?
[編輯:]
我也想從根本上了解我是如何處理字符串編碼/ Python中2.7解碼 - 我已經遠離黑客在本作更多的時間比它值得,因爲這不是隻有我有這個UnicodeDecodeError
錯誤,我不知道什麼時候會發生,我仍然只是拋出修復控制檯,看看有什麼堅持,沒有任何根本的理解發生了什麼。
你可以張貼你的原始數據幀的提取物? –