我已经使用下面的行来获取数量
从文件的特定列(包含 READ、WRITE、NOP)“读取”。这不是 csv 文件,而是一个以\t 作为分隔符的 .out 文件。
data = pd.read_csv('xaa',usecols=[1], header=None,delimiter='\t')
df2=df1.iloc[start:end,]
count=df2.str.count("R").sum()
我遇到了错误
AttributeError:
'DataFrame' object has no attribute 'str'
但是当我使用
if filename.endswith(".csv"):
data = pd.read_csv(filename)
df1=data.loc[:,"operation"]
df2=df1.iloc[start:end,]
count=df2.str.count("R").sum()
没有错误。但在这里我必须输入每个 csv 文件。我必须打开文件并在我需要的列中插入“操作”。请给个灵魂
最佳答案
我认为需要为 Series
选择列 1
,否则获取一列 DataFrame
:
count=df2[1].str.count("R").sum()
或按eq
比较和 True
的 sum
:
count=df2[1].eq("R").sum()
编辑:
另一种解决方案是通过参数squeeze
在read_csv
中返回Series
:
s = pd.read_csv('xaa',usecols=[1], header=None,delimiter='\t', squeeze=True)
count=s.iloc[start:end].str.count("R").sum()
#for another solution
#count=s.iloc[start:end].eq("R").sum()
示例:
df2 = pd.DataFrame({1:['R','RR','Q']})
print (df2)
1
0 R
1 RR
2 Q
#count all substrings
count=df2[1].str.count("R").sum()
print (count)
3
#count only strings
count=df2[1].eq("R").sum()
print (count)
1
关于python - Pandas 数据框的一个特定项目的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49976644/