如何将项附加到字典值是python的一个列表

如何将项附加到字典值是python的一个列表,python,Python,我有这样的xlsx文件 travel_df = pd.read_excel('../Data/TopMart.xlsx') data = travel_df.to_dict('records') parent_name_1 parent_name_2 parent_name_3 A1 B1 C1 A2 B2 C2

我有这样的xlsx文件

travel_df = pd.read_excel('../Data/TopMart.xlsx')
data = travel_df.to_dict('records')
parent_name_1      parent_name_2      parent_name_3
     A1                  B1                 C1
     A2                  B2                 C2
     A3                  B3                 C3
     A4                  B4                 C4
数据是这样的

travel_df = pd.read_excel('../Data/TopMart.xlsx')
data = travel_df.to_dict('records')
parent_name_1      parent_name_2      parent_name_3
     A1                  B1                 C1
     A2                  B2                 C2
     A3                  B3                 C3
     A4                  B4                 C4
我想让dict像这样:

cat = {
    A1 : [B1, C1],
    A2 : [B2, C2],
    A3 : [B3, C3],
    A4 : [B4, C4],
}

最好的方法是什么?我不知道这是否是最好的方法,但你可以试试:

import pandas

if __name__ == "__main__":
    xls = pandas.read_excel("test.xls")
    data = {xls.iloc[i][0]: list(xls.iloc[i][1:].values) for i in range(len(xls))}

假设您的第一列有唯一的键。

可能有更好的函数直接执行此操作,但我找不到它。。。但是,
df.to_dict('split')
得到了一些帮助,并且很容易完成。这就是split带给我们的:

{'index': [0, 1, 2, 3],
 'columns': ['parent_name_1', 'parent_name_2', 'parent_name_3'],
 'data': [['A1', 'B1', 'C1'],
  ['A2', 'B2', 'C2'],
  ['A3', 'B3', 'C3'],
  ['A4', 'B4', 'C4']]}
这里的
数据
项有点像我们想要的,有点像

l = df.to_dict('split')['data']
cat = dict()
for n in l:
    cat.update({n[0]:[n[1],n[2]]})
最后,
cat
看起来正是(我认为)您想要的样子。

将熊猫作为pd导入
my_data=pd.DataFrame({
'A':['A1','A2','A3','A4'],
‘B’:[‘B1’、‘B2’、‘B3’、‘B4’],
‘C’:[‘C1’、‘C2’、‘C3’、‘C4’]
})
结果=我的数据。将索引(“A”)设置为索引(“索引”)
{key:key的列表(value.values()),result.items()中的值]
结果对象: 最终产量
  • 将父项名称设置为索引
  • 转置数据帧
  • 将其转换为dict使用转换为dict(orient=“list”)忽略转置后的新索引

  • cat=travel\u df.set\u index(“parent\u name\u 1”).T.to\u dict(orient=“list”)

    你需要
    A1:[B1,B1]
    还是
    A1:[B1,C1]
    ?@Marino我的坏是我需要A1:[B1,C1]@Marino我编辑了我的代码这一个赢了,干得好。)不客气!