我有一个.csv文件,其中一列名为Trigger
,另外两列名为void1
和void2
。
数据如下所示:
Trigger;void1;void
good;not good;not to good;
我想使用这些数据创建一个如下所示的字典:
dictionary ={"good":["not good", "not to good"]}
我使用以下代码开始:
df = pd.read_csv('dictionary.csv', sep =";")
for index, row in df.iterrows():
dictionary[row['trigger']] = row['void1']
哪个有效。但是,当我尝试:
df = pd.read_csv('dictionary.csv', sep =";")
for index, row in df.iterrows():
dictionary[row['trigger']] = row['void1', 'void2']
它不起作用。我有什么想法可以得到我想要的输出?
答案 0 :(得分:2)
假设Numpy的工作方式与标准Python列表类似,则需要更改此行:
dictionary[row['trigger']] = row['void1', 'void2']
要:
dictionary[row['trigger']] = [row['void1'], row['void2']]
还假设您的CSV文件实际上如下所示:
Trigger;void1;void2
good;not good;not to good;
而不是:
Trigger;void1;void
good;not good;not to good;
另请注意,您的第一个示例并未按照您的意愿保存条目。您将String存储为字典值而不是数组。
答案 1 :(得分:0)
请一次只能访问row
中的一列:
for index,row in df.iterrows():
dictionary[row['trigger']] = [row['void1'], row['void2']]
答案 2 :(得分:0)
在pandas中,您可以在索引运算符([]
)中包含一个列表,以便选择所需的列。您几乎使用row['void1', 'void2']
语法,只需要第二组括号:
dictionary[row['trigger']] = row[['void1', 'void2']].tolist()
然后调用tolist
,因为row[['void1', 'void2']]
将返回一个Series对象而不是一个普通列表。