Python 第一个元素成为每行的键

Python 第一个元素成为每行的键,python,pandas,dictionary,Python,Pandas,Dictionary,我有一个包含两列的csv文件。以下是他容貌的一瞥: A, john, robert, simon,peter B, robert, isiah, elephant C,james, bond, jack, chuck 我想要的是能够使第一行的每个元素成为字典的键,并使该行的其余部分成为值。基本上我希望它看起来是这样的: A B C john robert james robert isiah bond peter elephant

我有一个包含两列的csv文件。以下是他容貌的一瞥:

A, john, robert, simon,peter
B, robert, isiah, elephant
C,james, bond, jack, chuck
我想要的是能够使第一行的每个元素成为字典的键,并使该行的其余部分成为值。基本上我希望它看起来是这样的:

 A       B         C
john     robert    james
robert   isiah     bond
peter    elephant  jack
                   chuck

您可以尝试以下方法:

data_before = [
  ['A:john', 'robert', 'simon', 'peter'],
  ['B:robert', 'isiah', 'elephant'],
  ['C:james', 'bond', 'jack', 'chuck']
]

data_after = {row[0].split(':', 2)[0]: [row[0].split(':', 2)[1]]+row[1:] for row in data_before}
具有以下功能:

...
result = df.transpose().to_dict(orient='list')
print(result)
示例有效输入.csv内容:

A: john, robert, simon, peter
B: robert, isiah, elephant, dave
C: james, bond, jack, chuck
输出:

0        A          B       C
1     john     robert   james
2   robert      isiah    bond
3    simon   elephant    jack
4    peter       dave   chuck
{'B': [' robert', ' isiah', ' elephant', ' dave'], 'A': [' john', ' robert', ' simon', ' peter'], 'C': [' james', ' bond', ' jack', ' chuck']}
使用以下函数将Dataframe转换为字典:

...
result = df.transpose().to_dict(orient='list')
print(result)
输出:

0        A          B       C
1     john     robert   james
2   robert      isiah    bond
3    simon   elephant    jack
4    peter       dave   chuck
{'B': [' robert', ' isiah', ' elephant', ' dave'], 'A': [' john', ' robert', ' simon', ' peter'], 'C': [' james', ' bond', ' jack', ' chuck']}

西蒙应该在哪里?可能是这个吗?{line.split':'[0]:line.split':'[1].split',for line in open'your_file.csv'}这正是我想要的,但我的示例显示的是分号,而不是逗号。分号只是用来区别的。我的分隔符有问题。我有,但它给我1行,而不是3或4行。它们会出现在右边的列中,但好像每列都有一个列表,其中包含3或4个元素。