【发布时间】:2020-11-26 16:13:16
【问题描述】:
我的目标是每当“SAD”列中的字符串与列名匹配时输入 1,否则输入 0。
所以我们有这个数据框:
df = pd.DataFrame({'SAD': ['Game;Pool;Read;lol','Game;Read'], 'Game':[0,0], 'Pool': [0, 0], 'Read':[0, 0], 'Drink' : [0, 0]})
我试过这个:拆分然后分配:
l= df["SAD"].apply(lambda x: x.split(";"))
for i in l:
for x in i:
if x in df.columns:
df[x]=1
print(df)
但是,这会在第一次看到匹配的字符串时将整个数据框替换为 1:
SAD Game Pool Read Drink
0 Game;Pool;Read;lol 1 1 1 0
1 Game;Read 1 1 1 0
期望的输出是:
SAD Game Pool Read Drink
0 Game;Pool;Read;lol 1 1 1 0
1 Game;Read 1 0 1 0
【问题讨论】:
-
您还需要这里的帮助吗?如果不是,请接受答案,以便可以关闭此问题
标签: python