2016-09-28 3 views
3

Вот моя проблема, у меня есть лист Excel с 2 столбцами (см ниже) enter image description hereконкатенации первенствует ДАННЫЕ с питоном или Excel

я хотел бы напечатать (на питона консоли или в ячейке Excel) все данные при такой форме:

"1" : ["1123","1165", "1143", "1091", "n"], *** n ∈ [A2; A205]*** 

Мы не очень заботимся о колонке Б. Но мне нужно, чтобы добавить каждый почтовый индекс в соответствии с этой конкретной формой.

есть ли способ сделать это с помощью Excel или Python с Panda? (Если у вас есть какие-либо другие идеи, которые я хотел бы услышать их)

Приветствие

ответ

2

Я думаю, что вы можете использовать parse_cols для разбора первого столбца, а затем отфильтровать все столбцы из 205 до 1000 по skiprows в read_excel:

df = pd.read_excel('test.xls', 
        sheet_name='Sheet1', 
        parse_cols=0, 
        skiprows=list(range(205,1000))) 
print (df) 

Последнее использование tolist для преобразования первого столбца list:

print({"1": df.iloc[:,0].tolist()}) 

Простейшее решение разобрать только первый столбец, а затем использовать iloc:

df = pd.read_excel('test.xls', 
        parse_cols=0) 

print({"1": df.iloc[:206,0].astype(str).tolist()}) 
+0

Я вижу erorr, поэтому добавляю другое более простое решение, пожалуйста, проверьте его. – jezrael

+0

Да, это действительно хорошая идея! Существует только «отсутствует» между каждым почтовым кодом: «1»: [«1123», «1165», «1143», «1091», «n»]. У тебя есть идеи ? Это очень важно, потому что я использовал эту форму для Javascript – jjyoh

+0

Да, дай мне секунду. – jezrael

1

Я не знаком с первенствовать, но панды могут легко справиться с этой проблемой.

Во-первых, читать первенствовать к DataFrame

import pandas as pd 
df = pd.read_excel(filename) 

Затем, печать, как вам нравится

print({"1": list(df.iloc[0:N]['A'])}) 

где N сумма, которую вы хотели бы напечатать. Вот и все. Если список не является строковым списком, вам нужно передать int в строку.

Кроме того, есть много параметров, которые могут управлять частью нагрузки excel read_excel, вы можете пройти через документ, чтобы установить подходящие параметры.

Надеюсь, это было бы полезно для вас.

+0

У меня есть большая ошибка, которая говорит: Файл «pandas \ index.pyx», строка 137, в pandas.index.IndexEngine.get_loc (pandas \ index.c: 4066) Файл «pandas \ index.pyx», строка 161, in pandas.index.IndexEngine.get_loc (pandas \ index.c: 3995) KeyError: 'A' – jjyoh

+0

Проверьте имена столбцов 'df.columns'. Убедитесь, что вы используете правильное имя. На самом деле вы также можете использовать 'df.iloc [0: N] [1]' для среза данных с строками = [0: N] и cols = [1]. Более того, проверьте документы панд, чтобы посмотреть, как выбирать строки и столбцы в dataframe [Индексирование и выбор данных] (http: //pandas.pydata.орг/панды-документы/стабильный/indexing.html). – rojeeer