如何从 Python 上的文本文件中提取总和数据
How to extract a sum data from a text file on Python
我有一个包含 6 列的文本文件 txt:
1.sex (男/女) 2.age 3.height 4.weight 5.-/+ 6.zip 代码
我需要从这篇文章中找出有多少男性有 - 符号。 (例如:来自 txt 的 30 M(Male) 是 - )
所以我只需要末尾的数字。
从逻辑上讲,我需要使用第 1 列和第 5 列,但我很难在最后得到一个(总和)数字。
这是正文内容:
M 87 66 133 - 33634
M 17 77 119 - 33625
M 63 57 230 - 33603
F 55 50 249 - 33646
M 45 51 204 - 33675
M 58 49 145 - 33629
F 84 70 215 - 33606
M 50 69 184 - 33647
M 83 60 178 - 33611
M 42 66 262 - 33682
M 33 75 176 + 33634
M 27 48 132 - 33607
我现在正在得到结果...,但我想要 M 和阳性。我怎样才能将其添加到事件中?
f=open('corona.txt','r')
data=f.read()
occurrences=data.count('M')
print('Number of Males that have been tested positive:',occurrences)
如果您大量使用文本和柱状数据,我建议您开始学习 pandas
对于此任务,如果您的 csv 是每行一条记录并且是 space-delimited:
import pandas as pd
d = pd.read_csv('data.txt',
names=['Sex', 'Age', 'Height', 'Weight', 'Sign', 'ZIP'],
sep=' ', index_col=False)
d[(d.Sex=='M') & (d.Sign=='-')].shape[0] # or
len(d[(d.Sex=='M') & (d.Sign=='-')]) # same result, in this case = 9
Pandas
是一个非常广泛的包。此代码的作用是从您的 csv 数据构建一个 DataFrame
,为每一列命名。然后从中选择符合条件 Sex == 'M'
和 Sign == '-'
的每一行,并报告找到的记录数。
我建议开始here
你可以这样分割线:
occurrences = 0
with open('corona.txt') as f:
for line in f:
cells = line.split()
if cells[0] == "M" and cells[4] == "-":
occurrences += 1
print("Occurrences of M-:", occurrences)
但最好使用 csv
模块或 pandas
进行此类工作。
我有一个包含 6 列的文本文件 txt: 1.sex (男/女) 2.age 3.height 4.weight 5.-/+ 6.zip 代码
我需要从这篇文章中找出有多少男性有 - 符号。 (例如:来自 txt 的 30 M(Male) 是 - )
所以我只需要末尾的数字。
从逻辑上讲,我需要使用第 1 列和第 5 列,但我很难在最后得到一个(总和)数字。
这是正文内容:
M 87 66 133 - 33634
M 17 77 119 - 33625
M 63 57 230 - 33603
F 55 50 249 - 33646
M 45 51 204 - 33675
M 58 49 145 - 33629
F 84 70 215 - 33606
M 50 69 184 - 33647
M 83 60 178 - 33611
M 42 66 262 - 33682
M 33 75 176 + 33634
M 27 48 132 - 33607
我现在正在得到结果...,但我想要 M 和阳性。我怎样才能将其添加到事件中?
f=open('corona.txt','r')
data=f.read()
occurrences=data.count('M')
print('Number of Males that have been tested positive:',occurrences)
如果您大量使用文本和柱状数据,我建议您开始学习 pandas
对于此任务,如果您的 csv 是每行一条记录并且是 space-delimited:
import pandas as pd
d = pd.read_csv('data.txt',
names=['Sex', 'Age', 'Height', 'Weight', 'Sign', 'ZIP'],
sep=' ', index_col=False)
d[(d.Sex=='M') & (d.Sign=='-')].shape[0] # or
len(d[(d.Sex=='M') & (d.Sign=='-')]) # same result, in this case = 9
Pandas
是一个非常广泛的包。此代码的作用是从您的 csv 数据构建一个 DataFrame
,为每一列命名。然后从中选择符合条件 Sex == 'M'
和 Sign == '-'
的每一行,并报告找到的记录数。
我建议开始here
你可以这样分割线:
occurrences = 0
with open('corona.txt') as f:
for line in f:
cells = line.split()
if cells[0] == "M" and cells[4] == "-":
occurrences += 1
print("Occurrences of M-:", occurrences)
但最好使用 csv
模块或 pandas
进行此类工作。