Python 如何将字典值(列表类型)添加到以行号为键的excel文件中?

Python 如何将字典值(列表类型)添加到以行号为键的excel文件中?,python,excel,pandas,Python,Excel,Pandas,我有一本这样的字典: { 1: ['hello', 'hi', 'greeings'] 2: ['john', 'david'] 3: ['foo', 'fee', 'faa', 'fii'] } 我想创建一个名为“test”的新列,并将每个列表值添加到相应的行号中 例如,excel的外观如下所示: old column | ... | test -------------------------------------------- some data | ... | hell

我有一本这样的字典:

{
  1: ['hello', 'hi', 'greeings']
  2: ['john', 'david']
  3: ['foo', 'fee', 'faa', 'fii']
}
我想创建一个名为“test”的新列,并将每个列表值添加到相应的行号中

例如,excel的外观如下所示:

old column | ... | test
--------------------------------------------
some data  | ... | hello, hi, greetings
some data  | ... | john, david
some data  | ... | foo, fee, faa, fii
编辑


excel文件已经存在,我可以成功读取它,我想在其中添加一个新列

只需获取索引并将dict的映射值返回到新列中即可

df = pd.read_excel(file_name)
your_dict = {0: 'ha', 1: 'blah', 2: 'hah', 3: ['foo', 'bar']}

df['mapped'] = df.index.map(your_dict)
我使用的数据是从内存中最后一个示例数据帧加载的。无需重新加载:

df
Out[42]: 
    Name  Age  Height  Hair_Width      mapped
0    Tom   20      23          21          ha
1   nick   21      43          11        blah
2  krish   19     123          23         hah
3   jack   18      12          14  [foo, bar]

我在评论中提出的最初方法是:

ndf = pd.concat([df, pd.Series(your_dict, name='test')], axis=1)
ndf
Out[46]: 
    Name  Age  Height  Hair_Width      mapped        test
0    Tom   20      23          21          ha          ha
1   nick   21      43          11        blah        blah
2  krish   19     123          23         hah         hah
3   jack   18      12          14  [foo, bar]  [foo, bar]

assert (ndf.mapped == ndf.test).all()  # no err

您是否尝试过?您想使用
.xls/.xlsx
还是只想在excel中打开生成的其他类型的文件?不太可能,因为我不知道如何迭代excel行并添加到them@nonForgivingJesus使用.xls/.xlsx您不知道如何将Excel文件加载到Pandas中吗?因为这是与
pd.concat([file,pd.Series(您的_dict,name='test')],axis=1)
不同的事情,而不是使用
lambda
,为什么不直接使用
df.index.map(您的_dict)
,它将用
nan
填充缺少的值。它也比您的第二个解决方案更可取。直到有了新的解决方案^谢谢,
df['mapped']=df.index.map(您的命令)
工作得很好:)