2015-01-31 2 views
1

У меня есть файл excel/csv, который имеет как заголовки столбцов, так и строк (строка 1 - все заголовки, столбец A - все названия строк). Я надеялся использовать диктофон, чтобы вернуть значение координаты (x, y), когда я поставлю столбец и строку.Значение ячейки при задании названия столбца и значения из строки

В конце концов я пошел, чтобы иметь возможность указывать несколько столбцов и одну строку, и он будет комбинировать значение в каждом столбце этой строки. Но я начну с детских шагов, поскольку в настоящее время я не могу даже вернуть первое значение, которое я хочу. Вот небольшой пример из моего файла Excel/CSV:

PinName RF_Switch_TX1 RF_Switch_TX2 RF_Switch_TX3 RF_Switch_TX3_Scope1 RF_Switch_TX3_Scope2 

DM_D_0 1255,1266,1311         1154,1105, 
DM_D_1 1256,1266,1311         1154,1105, 
DQS      1101,1161  1105         1153,1105 

Как я могу создать функцию, которая при поставке Pin Name «DM_D_1» и название колонки «RF_Switch_TX3_Scope1» было бы вернуть 1154,1105,

Я надеялся использовать диктофон, но мне нужно создать итеративную функцию, которая просматривает мой файл?

ответ

2

Будет ли использовать Pandas приемлемым подходом? (Первоначальный вопрос упоминается как Python, но теперь, похоже, это не так.) Я не уверен, что это самое идиоматическое использование Pandas, но оно, похоже, делает то, что вы хотите сделать.

Данные

я это в файл CSV.

PinName,RF_Switch_TX1, RF_Switch_TX2,RF_Switch_TX3,RF_Switch_TX3_Scope1,RF_Switch_TX3_Scope2 
DM_D_0,"1255,1266,1311",,,"1154,1105,", 
DM_D_1,"1256,1266,1311",,,"1154,1105,", 
DQS,,"1101,1161",1105,,"1153,1105" 

Некоторый код

from pandas import read_csv 

df = read_csv("/Users/igow/Desktop/so_data.csv") 
df = df.set_index(['PinName']) 

def get_value(row, col): 
    return df[col][row] 

print(get_value(col='RF_Switch_TX3_Scope1', row='DM_D_1')) 
0

Если поместить данные в CSV или по крайней мере указать разделитель правильно, то вы можете сделать следующее:

In [56]: q = StringIO('''PinName,RF_Switch_TX1, RF_Switch_TX2,RF_Switch_TX3,RF_Switch_TX3_Scope1,RF_Switch_TX3_Scope2 
    ....: DM_D_0,"1255,1266,1311",,,"1154,1105,", 
    ....: DM_D_1,"1256,1266,1311",,,"1154,1105,", 
    ....: DQS,,"1101,1161",1105,,"1153,1105"''') 

In [57]: df1 = pd.read_csv(q,) 

In [58]: df1.loc[df1['PinName'] == 'DM_D_1']['RF_Switch_TX3_Scope1'].values[0] 
Out[58]: '1154,1105,' 

In [59]: 
Смежные вопросы