【发布时间】:2019-12-14 06:48:46
【问题描述】:
我正在尝试遍历 Pandas 中的列和行以交叉引用我拥有的列表并计算共现。
我的数据框看起来像:
+-------+-----+-----+----+----+-------+-------+------+
| Lemma | Dog | Cat | Sg | Pl | Good | Okay | Bad |
+-------+-----+-----+----+----+-------+-------+------+
| Dog | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Cat | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+-------+-----+-----+----+----+-------+-------+------+
我有一个类似的列表:
c=[[dog, Sg, Good], [cat, Pl, Okay], [dog, Pl, Bad]
我想浏览Lemma 中的每一项,在c 中找到它,然后为该列表项查找任何列名。如果看到这些列名,我将添加 +1。如果引理项出现在彼此的 3 个单词窗口中,我还想添加一个计数。
我尝试过类似以下的方法(忽略单词窗口问题):
for idx, row in df.iterrows():
for columns in df:
for i in c:
if i[0]==row:
if columns in c[1]:
df.ix['columns','row'] +=1
但我收到错误消息:“ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。 "
我的理想结果如下:
+-------+-----+-----+----+----+-------+-------+------+
| Lemma | Dog | Cat | Sg | Pl | Good | Okay | Bad |
+-------+-----+-----+----+----+-------+-------+------+
| Dog | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
| Cat | 2 | 0 | 0 | 1 | 0 | 1 | 0 |
+-------+-----+-----+----+----+-------+-------+------+
谢谢!
【问题讨论】:
-
我认为您的结果有问题,为什么 Dog 和 lemma Cat 列包含 2 ?
-
输出看起来很奇怪。为什么
Cat-Cat是0,而Dog-Cat是1?