Как напечатать индексные номера строк и столбцов рядом со значениями?

#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
  

Надеюсь, это поможет!