如何解决从一个 CSV 中选择一个值列表,并在不同的 CSV 中获取列表值的计数
我正在编写 Python 代码来计算 CSV 中列中少数值的出现次数。
示例 - CSV1 如下
**Type Value**
Simple test
complex problem
simple formula
complex theory
simple idea
simple task
我需要获取类型简单和复杂的值的内容,即
**Type Value**
simple test
simple formula
simple idea
simple task
complex theory
complex problem
并在simple list i.e [test,formula,idea,task] and complex list i.e [theory,problem]
的总出现次数上查询其他CSV,即CSV1
其他 CSV2 是
**Category**
test
test
test
formula
formula
formula
test
test
idea
task
task
idea
task
idea
task
problem
problem
theory
problem
problem
idea
task
problem
test
CSV1 和 CSV2 都是动态的,以 CSV1 为例,“简单”类型获取相应值的列表,并参考 CSV2 以了解每个值的计数。即测试、想法、任务、公式的计数。
>复杂类型相同 我用 Pandas 尝试了多种方法,但没有得到预期的结果。请指点。
解决方法
使用:
df2['cat'] = df2['Category'].map(df1.set_index('Value')['Type'])
df2 = df2['cat'].value_counts().rename_axis('a').reset_index(name='b')
print (df2)
a b
0 simple 18
1 complex 6
,
很像@jezrael,但是我会首先分组第二个csv。如果第二个 csv 非常大,这将有助于合并。
df2=cv2.groupby('value').agg(cnt=('value','count')).reset_index()
这会给我一个包含两列值和计数的数据框。
现在,您可以将其与 CV1 合并
df1 = cv1.merge(df2,on=['value'],how='inner')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。