如何使用熊猫从csv同时提取两个值? (两列,同一行)

时间:2018-08-10 20:16:38

标签: python pandas csv dictionary

我正在使用pandas将CSV文件读入我的python代码中。我知道我可以从所有行的特定列中获取特定值,并将其附加到数组中,如下所示:

import pandas as pd
df = pd.read_csv('File.txt')
for row in df[df.columns[0]]:
    playerNames.append(row)

但是,我想改为同时从第0列和第2列中获取值以填充字典。在我的脑海中就像是这样:

for row in df[df.columns[0,2]]:
    playerNameDictionary[row.columns[0]] = row.columns[2]

显然这是错误的(甚至不认为它可以编译),但是我对如何执行此操作感到茫然。

3 个答案:

答案 0 :(得分:1)

循环是熊猫的反模式。您可以更有效地使用pd.Series.to_dict

key_col, val_col  = df.columns[[0, 2]]

playerNameDictionary = df.set_index(key_col)[val_col].to_dict()

答案 1 :(得分:1)

dict_sample = dict(zip(df.column1, df.column2))

column1&column 2代表列名。它将创建一个键值对,其中键为column1数据,值为column2数据。我希望我理解正确的问题。

答案 2 :(得分:0)

确保将来的密钥不重复。 对于Python <3

my_dict ={}
for key, value in zip(df.column0, df.column2)):
    my_dict [key] = value 

对于Python 3>

my_dict = dict(zip(df.column0, df.column2))