【问题标题】:Extending a data frame with a column, only using positive numbers用一列扩展数据框,仅使用正数
【发布时间】:2022-01-15 17:06:11
【问题描述】:

我正在尝试计算加载到数据框中的外部文件中列的平均值。我只想计算“出发延迟”列中正数的平均值。为此,我想用一个仅使用正数的列来扩展数据框,所有负数都应替换为 0。这可能吗?如果没有,还有其他方法吗?

【问题讨论】:

  • df.loc[df['DEPARTURE_DELAY'] > 0, 'DEPARTURE_DELAY'].mean() 会这样做。

标签: python pandas dataframe pandas-groupby


【解决方案1】:

设置:

df = pd.DataFrame(
 {
 "CARRIER": ['9E', '9E','9E', '9E', '9E'],
 "ORIGIN": ['ATL','ATL','ATL','ATL','ATL'],
 "DESTINATION": ['CSG', 'CSG','CSG','CSG','CSG'],
 "DEPARTURE_DELAY": [-2, -5, -5, -5, -5],
 "PLANNED_DURATION": [47,47,47, 47, 47],
 "ACTUAL_DURATION": [37, 32, 39, 37, 41],
 "DISTANCE": [83, 83, 83, 83, 83]
 }   

)

当您要求将所有小于 0 的值替换为 0 时,您可以使用

num = df._get_numeric_data() # since you have columns that are not numeric

num = df.select_dtypes("number")

num[num

To get mean: `df.mean(numeric_only=True)`

【讨论】:

  • 由于它以_ 开头并且缺少文档,我会说df.select_dtypes("number")df._get_numeric_data() 更受欢迎。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多