Python 第一个元素成为每行的键
我有一个包含两列的csv文件。以下是他容貌的一瞥: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
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个元素。