我正在尝试让我的数据框将特定值插入列中。所需的值将是“返回天气”,其中“城市”和“日”均与指定值匹配。这是一个玩具示例:
index City Weather Day Return City Return Weather
0 New York 65 3 Baltimore
1 Atlanta 77 6 Chicago
2 Baltimore 68 9 Orlando
3 Chicago 62 13 Boston
4 Boston 57 14 Atlanta
5 Orlando 88 19 New York
6 Baltimore 59 3 Chicago
7 Chicago 66 6 Atlanta
这是我正在尝试的代码:
for i in df.index:
day = df.loc[i, 'Day']
rtn_city = df.loc[i, 'Return City']
df.loc[i, 'Return Weather'] = df.loc[(df['City'] == rtn_city) & (df['Day'] == day), 'Weather'].values
但是我得到了
ValueError:设置可迭代项时,必须具有相同的len键和值
如果我将最后一行设置为打印...
results = df.loc[(df['City'] == rtn_city) & (df['Day'] == day), 'Temp'].values
print(results)
我得到了正确的答案,但它们似乎是列表:
[59]
[66]
闻起来像我的问题。有什么想法吗?
答案 0 :(得分:1)
在设置了给定的索引的情况下,我们可以使用.loc []直接为不同的“ last_name”值选择行,具体情况视情况而定是单个还是多个。
results = df.loc[[(df['City'] == rtn_city) & (df['Day'] == day), 'Weather']].values
或尝试使用建议的@Sai Kumar获取特定索引。
results = df.loc[(df['City'] == rtn_city) & (df['Day'] == day), 'Weather'].values[0]