我使用了以下行来获取
的数量从文件的特定列(包含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'对象没有属性'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文件。我必须打开文件并在我需要的列中插入“操作”。 KIndly给予灵魂
答案 0 :(得分:1)
我认为需要为1
选择列Series
,否则会获得一列DataFrame
:
count=df2[1].str.count("R").sum()
或按sum
的{{3}}和True
进行比较:
count=df2[1].eq("R").sum()
编辑:
另一种解决方案是通过参数Series
在read_csv
中返回squeeze
:
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
答案 1 :(得分:0)
只需将0
添加到df2
作业:
data = pd.read_csv('xaa',usecols=[1], header=None,delimiter='\t')
df2=df1.iloc[start:end, 0]
count=df2.str.count("R").sum()
我认为应该是:
df2 = data.iloc[start:end, 0]
但也许您还有一些其他步骤可以创建df1
。