【发布时间】:2020-10-14 21:40:41
【问题描述】:
我有以下 pandas DataFrame。
Id UserId Name Date Class TagBased
0 2 23 Autobiographer 2016-01-12T18:44:49.267 3 False
1 3 22 Autobiographer 2016-01-12T18:44:49.267 3 False
2 4 21 Autobiographer 2016-01-12T18:44:49.267 3 False
3 5 20 Autobiographer 2016-01-12T18:44:49.267 3 False
4 6 19 Autobiographer 2016-01-12T18:44:49.267 3 False
我想遍历“TagBased”列并将用户 ID 放入 TagBased=True 的列表中。 我使用了以下代码,但没有得到不正确的输出,因为 TagBased 中有 18 个 True 值。
user_tagBased = []
for i in range(len(df)):
if (df['TagBased'] is True):
user_TagBased.append(df['UserId'])
print(user_TagBased)
Output: []
【问题讨论】:
-
试试
df.loc[df['TagBased'],'UserId'].tolist()你在 pandas 中大部分时间都不需要循环 -
尝试此方法时出现以下错误: KeyError: "None of [Index(['False', 'False', 'False', 'False', 'False', 'False ', '假', '假',\n '假', '假',\n ...\n '假', '假', '假', '假', '假', '假' , 'False', 'False',\n 'False', 'False'],\n dtype='object', length=18087)] 在 [index]"
-
df.loc[df['TagBased'].eq("True"),'UserId'].tolist()更好,因为值是字符串 -
这个有效,非常感谢!!
标签: python-3.x pandas loops dataframe iteration