Python 如何使用pandas将csv转换为字典

Python 如何使用pandas将csv转换为字典,python,csv,dictionary,pandas,Python,Csv,Dictionary,Pandas,如何使用pandas将csv转换为字典?例如,我有两列,希望column1是键,column2是值。我的数据如下所示: "name","position" "UCLA","73" "SUNY","36" cols = ['name', 'position'] df = pd.read_csv(filename, names = cols) df = pd.DataFrame({"name": [73, 36], "position" : ["

如何使用pandas将csv转换为字典?例如,我有两列,希望column1是键,column2是值。我的数据如下所示:

"name","position"
"UCLA","73"
"SUNY","36"

cols = ['name', 'position']
df = pd.read_csv(filename, names = cols)
df = pd.DataFrame({"name": [73, 36], "position" : ["UCLA", "SUNY"]})

series = df["position"]
series.index = df["name"]
series.to_dict()

将列转换为列表,然后压缩并转换为dict:

In [37]:

df = pd.DataFrame({'col1':['first','second','third'], 'col2':np.random.rand(3)})
print(df)
dict(zip(list(df.col1), list(df.col2)))
     col1      col2
0   first  0.278247
1  second  0.459753
2   third  0.151873

[3 rows x 2 columns]
Out[37]:
{'third': 0.15187291615699894,
 'first': 0.27824681093923298,
 'second': 0.4597530377539677}

由于示例csv数据的第一行是“标题”, 您可以使用以下的
square
关键字将其解读为
pd.Series

如果您还想包括第1行,请删除
标题
关键字(或将其设置为
None
)。

在我看来,将文件放在磁盘上是最优雅的解决方案

但是,如果您不想或无法绕道从文件系统保存和加载,也可以这样做:

"name","position"
"UCLA","73"
"SUNY","36"

cols = ['name', 'position']
df = pd.read_csv(filename, names = cols)
df = pd.DataFrame({"name": [73, 36], "position" : ["UCLA", "SUNY"]})

series = df["position"]
series.index = df["name"]
series.to_dict()
结果:

{'UCLA': 73, 'SUNY': 36}

我可以问一下为什么
压缩
?因为它将2列CSV读取为系列,正如所解释的,它有
to_dict()
方法,所以它应该比填充完整的数据帧和压缩(公认的答案)更有效。