y = display(list(range(1, 1000))),x1=display(df1.loc[df['like'].str.endswith('largeDoses')].index)为什么报错x1=display(df1.loc[df['like'].str.endswith('largeDoses')].index)
时间: 2023-06-12 18:03:16 浏览: 166
这个错误可能是因为没有定义 `df1` 或者 `df`,或者是因为 `df1` 或 `df` 中没有 `like` 这个列。
确认一下你是否已经正确地导入了需要的库和数据,并且确保 `df1` 或 `df` 中包含了 `like` 这个列。另外,`display()` 函数并不返回任何值,所以将其赋值给变量是不必要的。你可以直接调用 `display()` 函数来显示它的结果。因此,可以将代码改为:
```
y = display(list(range(1, 1000)))
display(df1.loc[df1['like'].str.endswith('largeDoses')].index)
```
这个代码会显示 `df1` 中 `like` 列以 "largeDoses" 结尾的所有行的索引。
相关问题
df=pd.read_table('./datingTestSet.txt',names=['fly','plat','eat','like']) df1=df.loc[:,['like']] x1=display(df1.loc[df['like'].str.endswith('largeDoses')].index) x2=df1.loc[df['like'].str.endswith('smallDoses')].index x3=df1.loc[df['like'].str.endswith('didntLike')].index print(x1,x2,x3)y = display(list(range(1, 1000))) y plt.scatter(x, y1, c = "yellow", marker='o',label='largeDoses')
这段代码读入了一个文本文件,将数据存储在名为df的数据框中,并将列名设置为'fly'、'plat'、'eat'和'like'。然后,选择只包含'like'列的子数据框df1。接下来,使用str.endswith()方法和'largeDoses'、'smallDoses'和'didntLike'字符串来查找不同类别的数据的索引,并将它们存储在x1、x2和x3中。最后,使用Matplotlib的scatter()函数绘制散点图,并使用不同的颜色和标记来区分不同类别的数据点。但是,代码中的变量y没有定义,因此无法运行。
if df1.loc['下行带宽'] == '100M' and df1.loc['下行速率'] < 50: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否' if df1.loc['下行带宽'] == '40M' and df1.loc['下行速率'] < 30: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否' if df1.loc['下行带宽'] == '20M' and df1.loc['下行速率'] < 10: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否' if df1.loc['下行带宽'] == '5M' and df1.loc['下行速率'] < 2.5: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否' if df1.loc['下行带宽'] == '80M' and df1.loc['下行速率'] < 40: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否' if df1.loc['下行带宽'] == '200M' and df1.loc['下行速率'] < 100: df1['低速率差小区'] = '是' else: df1['低速率差小区'] = '否'
根据你提供的代码,你想要根据不同的条件对DataFrame进行筛选,并将结果存储在`df1['低速率差小区']`列中。但是,你的代码中存在一个问题:每个条件都会覆盖前一个条件设置的值,导致最终结果只会反映最后一个条件的结果。
为了解决这个问题,你可以使用`numpy.select()`函数来对多个条件进行筛选并设置对应的值。以下是修正后的代码示例:
```python
import numpy as np
conditions = [
(df1.loc['下行带宽'] == '100M') & (df1.loc['下行速率'] < 50),
(df1.loc['下行带宽'] == '40M') & (df1.loc['下行速率'] < 30),
(df1.loc['下行带宽'] == '20M') & (df1.loc['下行速率'] < 10),
(df1.loc['下行带宽'] == '5M') & (df1.loc['下行速率'] < 2.5),
(df1.loc['下行带宽'] == '80M') & (df1.loc['下行速率'] < 40),
(df1.loc['下行带宽'] == '200M') & (df1.loc['下行速率'] < 100)
]
choices = ['是', '是', '是', '是', '是', '是']
df1['低速率差小区'] = np.select(conditions, choices, default='否')
```
修正后的代码会根据不同的条件,分别对应设置`choices`中的值。如果没有任何条件满足,则会使用`default`参数中的值。注意,你需要导入NumPy库来使用`np.select()`函数。
这样,你就可以根据多个条件对DataFrame进行筛选,并根据条件结果设置相应的值。
阅读全文