Python3,带有pandas.dataframe,如何通过某些规则来显示某些数据

时间:2017-03-02 13:41:54

标签: python-3.x select dataframe rule

我有一个pandas.dataframe,我想根据某些规则选择某些数据。

以下代码生成数据框

import datetime
import pandas as pd
import numpy as np

today = datetime.date.today()
dates = list()
for k in range(10):
    a_day = today - datetime.timedelta(days=k)
    dates.append(np.datetime64(a_day))

np.random.seed(5)
df = pd.DataFrame(np.random.randint(100, size=(10, 3)),
                  columns=('other1', 'actual', 'other2'),
                  index=['{}'.format(i) for i in range(10)])

df.insert(0, 'dates', dates)
df['err_m'] = np.random.rand(10, 1)*0.1
df['std'] = np.random.rand(10, 1)*0.05
df['gain'] = np.random.rand(10, 1)

现在,我希望按以下规则选择:

1. compute the sum of 'err_m' and 'std', then sort the df so that the sum is descending
2. from the result of step 1, select the part where 'actual' is > 50    

由于

1 个答案:

答案 0 :(得分:1)

  1. 创建一个新列,然后按此排序:

    var string = "Cars"
    let index = string.index(string.startIndex, offsetBy: 2)
    string.replaceSubrange(index...index, with: "t")
    print(string)
    // Cats
    
  2. 选择您想要的行

    df['errsum'] = df['err_m'] + df['std']
    # Return a sorted dataframe
    df_sorted = df.sort('errsum', ascending = False)