【问题标题】:Reading csv file as dictionary using pandas使用熊猫将csv文件作为字典读取
【发布时间】:2015-11-10 00:40:39
【问题描述】:

我知道了。 csv 第一行作为标题:

A      B
test    23
try     34

我想把它当作字典来阅读,所以这样做:

dt = pandas.read_csv('file.csv').to_dict()

但是,这在标题行中读取为键。我希望“A”列中的值成为键。我该怎么做,即得到这样的答案:

{'test':'23', 'try':'34'}

【问题讨论】:

  • 那么{'A': ['test', 'try'], 'B': ['23', '34']}?
  • 感谢您澄清这一点,我想要 {'test':'23', 'try':'34'}。更新问题
  • 你的分隔符是\t?一般csv文件为1, 2, 3\n4, 5, 6。用逗号和换行符分隔列和行。
  • @RNar Nah,它们看起来像是针对不同对象的完全不同的问题。

标签: python dictionary pandas


【解决方案1】:
dt = pandas.read_csv('file.csv', index_col=1, skiprows=1).T.to_dict()

【讨论】:

  • 感谢@Alexander,如果任何值不唯一,您的解决方案似乎不起作用
  • 为什么需要.T
  • @Pinocchio 它转置数据帧,使索引成为列名,即字典的键。
【解决方案2】:

复制数据:

import pandas as pd
from io import StringIO

data="""
A      B
test    23
try     34
"""

df = pd.read_csv(StringIO(data), delimiter='\s+')

转换成字典:

print(dict(df.values))

将给予:

{'try': 34, 'test': 23}

【讨论】:

  • 这与操作员的要求无关,我只是在复制他的数据
  • 那是什么让你认为这是一个合适的答案?!?
  • 他所需要的只是print(dict(df.values)) 来获得他需要的输出。
  • 但是从.csv 文件中读取的内容如何?这是完全错误的。
  • 他将文件作为数据框读取,然后转换为字典。我不知道还能怎么说。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多