'DataFrame'对象没有属性'startswith'错误

时间:2019-07-26 17:26:58

标签: python dataframe

我正在尝试使用startswith对数据文件的某些部分进行排序,因此可以按其名称在matplotlib上进行绘制。我使用:

mint = open('/Users/brand/Desktop/datafile.txt')
str = ps.DataFrame(mint)
a = str.startswith('MS')
plt.scatter(color[a], light[a], c = 'blue')
b = str.startswith('BH')
plt.scatter(color[b], light[b], c = 'red')
c = str.startswith('RH')
plt.scatter(color[c], light[c], c = 'green')
d = str.startswith('RGB')
plt.scatter(color[d], light[d], c = 'purple')
e = str.startswith('AGB')
plt.scatter(color[e], light[e], c = 'pink')

但是每次我使用不同的模块运行该文件以打开文件时,它始终会出现错误:' ' object has no attribute 'startswith'

那我可以使用哪个对象的startswith属性?

2 个答案:

答案 0 :(得分:1)

将数据框重命名为df_str,因为str是python中的关键字。并执行df_str.str.startswith()以应用您的字符串方法

mint = open('/Users/brand/Desktop/datafile.txt')
df_str = ps.DataFrame(mint)[0]
a = df_str.str.startswith('MS')
plt.scatter(color[a], light[a], c = 'blue')
b = df_str.str.startswith('BH')
plt.scatter(color[b], light[b], c = 'red')
c = df_str.str.startswith('RH')
plt.scatter(color[c], light[c], c = 'green')
d = df_str.str.startswith('RGB')
plt.scatter(color[d], light[d], c = 'purple')
e = df_str.str.startswith('AGB')
plt.scatter(color[e], light[e], c = 'pink')

编辑:将df_str = ps.DataFrame(mint)更改为df_str = ps.DataFrame(mint)[0] 将Dataframe转换为Series

答案 1 :(得分:0)

已将startswith属性用于字符串对象。
请参见此处的函数文档:startswith() 因此,不能在DataFrame对象上调用它是完全正常的