#excel #python-3.x #pandas
#excel #python-3.x #pandas
Вопрос:
Просмотр изображения Я пытаюсь распечатать края данных в файле Excel. Я получил значения для печати. Но я не могу распечатать индексы строк и столбцов из-за зацикливания на фрейме данных.
Я пробовал печатать с помощью df.index
, но он выдает диапазон строк следующим образом: 5.0 RangeIndex(start=4, stop=30, step=1)
где 5
значение ребра, а последнее — индекс.
df = wb.iloc[rows, coln].fillna(0)
dfa = df.to_numpy()
for row in dfa:
for value in row:
if value!=0:
print(value, df.index)
break
This is the expexted result.
5 11 15.0
where 5 is the row number, 11 is the column number and 15.0 is the value on that cell.
Я попытался использовать функцию iterrows(), выполнив цикл по df следующим образом, и я получил ее для распечатки номеров строк вместе со значениями ячеек.
df = wb.iloc[rows, coln].fillna(0)
for index, row in df.iterrows():
Тем не менее, по-прежнему нет прогресса с номерами столбцов.
Комментарии:
1. является ли wb вашими 2D-данными?
2. Нет, данные неструктурированы. Я отредактирую и загружу изображение.
3. Итак, вы читаете xml в dataframe?
4. Нет, это файл xlsx. Я загрузил скриншот в описании.
5. ой, я имел в виду ввести excel, а не xml, мой плохой.
Ответ №1:
Предполагая, что моя цель — просто получить строку, столбец и значение (для каждого значения), я бы преобразовал его в массив numpy и применил ndenumerate(), как показано ниже :
import pandas as pd
import numpy as np
d = [[1,2],[3,4],[5,6]] #Assuming my data looks like d
df = pd.DataFrame(d)
na = np.array(df)
for index, value in np.ndenumerate(na):
print(index, value)
(0, 0) 1
(0, 1) 2
(1, 0) 3
(1, 1) 4
(2, 0) 5
(2, 1) 6
(ИЛИ)
for index, value in np.ndenumerate(na):
print(index[0], index[1], value)
0 0 1
0 1 2
1 0 3
1 1 4
2 0 5
2 1 6
Надеюсь, это поможет!