我在尝试从.csv文件中提取值(以便对值进行计数)时遇到了一个问题,同时使用for循环遍历列表以尝试找到正确的值。你知道吗
.csv文件的结构如下:
word,pleasantness,activation,imagery
a,2.0000,1.3846,1.0
abandon,1.0000,2.3750,2.4
abandoned,1.1429,2.1000,3.0
abandonment,1.0000,2.0000,1.4
etc...
第一列包含约9000个单词的列表,其他三列包含与特定单词在语言上相关的值。你知道吗
我用熊猫创建了一个数据帧:
df = pd.read_csv("dictionary.csv", sep=',')
我还有一个文本文件,我把它变成了一个列表:
read_file = open(textfile)
data = read_file.read().split()
现在,我的目标是让程序遍历列表中的每个单词,每次在.csv文件的第一列中遇到其中一个单词时,它都会将其值添加到现有变量中。以此类推,直到它到达列表的末尾。你知道吗
count = 0
pleasantness = 0
activation = 0
imagery = 0
for w in data:
count = count + 1
if w in df.word:
pleasantness = pleasantness + df.pleasantness
activation = activation + df.activation
imagery = imagery + df.imagery
print(count, pleasantness, activation, imagery)
这是我所能想到的最好的方法,但它显然不起作用;到最后变量仍然是0。你知道吗
有人知道怎么做吗?当然不必使用类似于这种方法的方法;我只关心得到结果。你知道吗
IIUC,假设你有一个
.csv
,比如:这就产生了
以及文本,例如
这就产生了
可以使用
numpy.isin
和collections.Counter
作为处理过程中的辅助对象:把计算出来的数值
在这篇文章中
你的总数是
如果要避免循环通过
Counter
,可以构建一个新的数据帧,例如哪个是
将
count
乘以其余的行得到
现在您可以在函数中使用它,例如
.sum()
相关问题 更多 >
编程相关推荐