d1=raw_taxis['trip_distance'] pd.cut(d1,[0,3,19,29,36],labels=['短程','近程','中程','远程'])。这段代码有什么问题
这段代码有两个问题:
在
pd.cut
函数中,分割点应该是一个列表,而不是多个参数,因此应该将[0, 3, 19, 29, 36]
改为(0, 3, 19, 29, 36)
。标签中的第一个标签应该是
'0-3'
或者'0-3km'
这样更能表达区间的意义,而不是'短程'
。同样地,其他标签也应该更加准确地表达区间的意义。
因此,正确的代码应该是:
d1 = raw_taxis['trip_distance']
pd.cut(d1, (0, 3, 19, 29, 36), labels=['0-3km', '3-19km', '19-29km', '29-36km'])
d1=raw_taxis['trip_distance'] pd.cut(d1, ['0', '5', '15', '26','37'], labels=['短程', '近程', '中程', '远程'])这段代码为什么会出现NAN值
这段代码会出现 NaN 值的原因是因为 pd.cut() 函数中的切分区间 ['0', '5', '15', '26','37'] 中没有包含原始数据 d1 中的某些数值,这些数值就会被标记为 NaN。例如,如果 d1 中存在一个值为 40,那么它就会被标记为 NaN,因为在 ['0', '5', '15', '26','37'] 中没有包含大于 37 的数值。为避免出现 NaN 值,可以将切分区间设置得更大一些,例如 ['0', '10', '20', '30', '40'],或者将 pd.cut() 函数中的参数设置为 include_lowest=True,以确保最小值也被包含在切分区间中,例如 pd.cut(d1, bins=[0, 5, 15, 26, 37], include_lowest=True, labels=['短程', '近程', '中程', '远程'])。
删除“raw_taxis.csv”数据集中total_amount>150的异常值
可以使用 Pandas 库来读取和处理 CSV 文件。你可以使用以下代码来读取“raw_taxis.csv”文件:
import pandas as pd
df = pd.read_csv('raw_taxis.csv')
然后,你可以使用以下代码来删除 total_amount 大于 150 的异常值:
df = df[df['total_amount'] <= 150]
这将创建一个新的 DataFrame,其中只包含 total_amount 小于或等于 150 的行。如果你想在原始 DataFrame 中进行更改,可以使用 inplace 参数:
df.drop(df[df['total_amount'] > 150].index, inplace=True)
这将在原始 DataFrame 中删除所有 total_amount 大于 150 的行。
相关推荐
















