Python 给定列标题和行中的值时的单元格值
我有一个excel文件/csv,它有列标题和行标题(第1行是所有标题,第A列是所有行标题)。我希望在提供列和行时使用dictreader返回(x,y)坐标的值 最终,我能够给出多个列和一行,它将为该行合并每个给定列中的值。但我将从小步骤开始,因为我目前甚至不能返回我想要的第一个值。以下是我的excel文件/CSV的一个小示例:Python 给定列标题和行中的值时的单元格值,python,excel,csv,lookup-tables,Python,Excel,Csv,Lookup Tables,我有一个excel文件/csv,它有列标题和行标题(第1行是所有标题,第A列是所有行标题)。我希望在提供列和行时使用dictreader返回(x,y)坐标的值 最终,我能够给出多个列和一行,它将为该行合并每个给定列中的值。但我将从小步骤开始,因为我目前甚至不能返回我想要的第一个值。以下是我的excel文件/CSV的一个小示例: PinName RF_Switch_TX1 RF_Switch_TX2 RF_Switch_TX3 RF_Switch_TX3_Scope1 RF_Sw
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
我如何构建一个函数,如果提供了管脚名称“DM_D_1”和列标题“RF_Switch_TX3_Scope1”,它将返回11541105
我希望只使用dictreader,但我需要构建一个迭代函数来搜索我的文件吗?使用dictreader是一种可以接受的方法吗?(最初的问题提到了Python,但现在似乎不是。)我不确定这是否是熊猫最惯用的用法,但它似乎做了你想做的事情
数据
我把它放到一个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'))
如果将数据放入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]: