Создать словарь списков и перейти к MultiIndex.from_arrays
:
#https://stackoverflow.com/a/33046935
d = {k: [dic[k] for dic in results_index] for k in results_index[0]}
print(d)
{'p': [2, 2, 1, 2], 'q': [7, 5, 4, 4]}
mux = pd.MultiIndex.from_arrays(list(d.values()), names=list(d))
df = pd.DataFrame(results_data, index=mux)
print (df)
A B
p q
2 7 0.18 0.18
5 0.67 0.21
1 4 0.96 0.45
2 4 0.58 0.66
Да, это могло быть с фактическим кодированием файла, вероятно, unicode. Попробуйте UTF-8, поскольку это - наиболее распространенная форма кодирования unicode. Иначе, если ASCII файла тогда стандартное кодирование ASCII должен работать.
Можно также попробовать Кодировку по умолчанию, которая использует кодовую страницу ANSI существующей системы.
StreamReader reader = new StreamReader(inputFilePath, Encoding.Default, true)
, Когда Вы попытаетесь использовать меню "Save As" Блокнота с исходным файлом, посмотрите на поле комбинированного списка кодирования. Это скажет Вам, какое кодирование предполагаемого блокнота используется файлом.
кроме того, если это - файл ANSI, detectEncodingFromByteOrderMarks параметр, вероятно, не поможет многому.
Использование Кодирования. Unicode не будет точно декодировать файл ANSI таким же образом, что декодер JPEG не поймет файл GIF.
я удивлен, что Encoding.Default
не работал на файл ANSI, если бы это действительно было ANSI - если Вы когда-нибудь узнаете точно , который использовала кодовая страница Блокнот, Вы могли использовать Encoding.GetEncoding(int)
.
В целом, где возможный я рекомендовал бы использовать UTF-8.
Попробуйте другое кодирование, такое как Кодирование. UTF8. Можно также попытаться позволить StreamReader найти кодирование себя:
StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.UTF8, true)
Редактирование: Просто видел Ваше обновление. Попытайтесь позволить StreamReader сделать предположение.