Pandas разбирает файл Excel в столбце A - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть радиопередача, которая в основном сбрасывает все данные в один столбец (столбец «A») электронной таблицы (.xlsx). Есть ли в любом случае, чтобы проанализировать двадцать плюс столбцы в кадре данных для pandas? Это пример данных, которые находятся в столбце A файла Excel:

DSP ALLMSINFO:SECTORID=0,CARRIERID=0;
Belgium351G
+++    HUAWEI        2020-04-03 10:04:47 DST 
O&M    #4421590
%%/*35687*/DSP ALLMSINFO:SECTORID=0,CARRIERID=0;%%
RETCODE = 0  Operation succeeded

Display Information of All MSs-
------------------------------
Sector ID  Carrier ID  MSID            MSSTATUS  MSPWR(dBm)  DLCINR(dB)  ULCINR(dB)  DLRSSI(dBm)  ULRSSI(dBm)  DLFEC  ULFEC  DLREPETITIONFATCTOR  ULREPETITIONFATCTOR  DLMIMOFLAG  BENUM  NRTPSNUM  RTPSNUM  ERTPSNUM  UGSNUM  UL PER for an MS(0.001)  NI Value of the Band Where an MS Is Located(dBm)  DL Traffic Rate for an MS(byte/s)  UL Traffic Rate for an MS(byte/s)
0          0           0011-4D10-FFBA  Enter     -2          29          27          -56          -107         21     20     0                    0                    MIMO B      2      0         0        0         0       0                        -134                                              158000                             46000
0          0           501F-F63B-FB3B  Enter     13          27          28          -68          -107         21     20     0                    0                    MIMO A      2      0         0        0         0       0                        -134                                              12                                 8                                                        

По сути, я просто хочу проанализировать эти данные и получить таблицу в кадре данных. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Загрузите файл excel и разбейте столбец на пробелы.

Может возникнуть проблема с «DLMIMOFLAG», поскольку в нем есть пробел, и это приведет к его разделению на два столбца. Необязательно, допустимо ли это, или если впоследствии столбцы объединяются вместе.

Добавьте заголовок вручную, а не загружайте его, в противном случае все пробелы в заголовке будут путать процедуры загрузки и разделения.

import numpy as np
import pandas as pd

# Start on the first data row - row 10
# Make sure pandas knows that only data is being loaded by using 
# header=None
df = pd.read_excel('radio.xlsx', skiprows=10, header=None)

Это дает фрейм данных, который представляет собой только данные, все они хранятся в одном столбце.

Чтобы разделить их, убедитесь, что pandas имеет ссылку на первый столбец с df.iloc[:,0], разделите столбец на основе пробелов с str.split() и сообщить pandas вывод будет numpy список values.tolist().

Вместе это выглядит так:

df2 = pd.DataFrame(df.iloc[:,0].str.split().values.tolist())

Обратите внимание на приведенный пример имеет дополнительный столбец из-за пробела в «DLMIMOFLAG», в результате чего он разделен на два столбца. Это будет называться «DLMIMOFLAG_A» и «DLMIMOFLAG_B».

Теперь добавьте заголовки столбцов.
При необходимости сначала создайте список.

column_names = ["Sector ID", "Carrier ID", "MSID", "MSSTATUS", "MSPWR(dBm)", "DLCINR(dB)", "ULCINR(dB)",
                "DLRSSI(dBm)", "ULRSSI(dBm)", "DLFEC", "ULFEC", "DLREPETITIONFATCTOR", "ULREPETITIONFATCTOR",
                "DLMIMOFLAG_A", "DLMIMOFLAG_B", "BENUM", "NRTPSNUM", "RTPSNUM", "ERTPSNUM", "UGSNUM",
                "UL PER for an MS(0.001)", "NI Value of the Band Where an MS Is Located(dBm)", 
                "DL Traffic Rate for an MS(byte/s)", "UL Traffic Rate for an MS(byte/s)",]
df2.columns = column_names

Это дает вывод в виде полный кадр данных с заголовками столбцов.

Sector ID Carrier ID MSID           MSSTATUS
0            0       0011-4D10-FFBA Enter
0            0       501F-F63B-FB3B Enter
0 голосов
/ 06 апреля 2020

Вы можете попробовать pandas read excel

    df = pd.read_excel(filename, skip_rows=9)

Это предполагает, что мы хотим игнорировать первые 9 строк, которые не составляют фрейм данных! Документы здесь https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...