如何在熊猫中过滤和选择不同的列以生成特定的输出

时间:2019-11-26 13:53:43

标签: pandas

我有以下代码:

setInterval

正在尝试生成一个打印输出,如:

报告设计列表import pandas as pd def EMP1(): df = pd.DataFrame([ ['EMP', 'name1', 'Boston', 'M'], ['EMP', 'name2', 'korea', 'F'], ['MGR', 'name3', 'North America','M'], ['MGR', 'name4', 'AUSIES', 'F'] ], columns=("DESIG", "NAMES", "CITIES", "GENDER")) spl = df[df.GENDER=='M'] print(spl) EMP1() 的雇员姓名列表<NAMES of EACH DESIG>的详细信息是性别列表<DESIG details>

EG:向EMP报告的雇员姓名1的详细信息为性别M     向MGR报告的name3员工的详细信息是性别M

4 个答案:

答案 0 :(得分:0)

使用.loc

例如:

def EMP1():
    df = pd.DataFrame([
    ['EMP', 'name1', 'Boston', 'M'],
    ['EMP', 'name2', 'korea', 'F'],
    ['MGR', 'name3', 'North America','M'],
    ['MGR', 'name4', 'AUSIES', 'F']
    ],
    columns=("DESIG", "NAMES", "CITIES", "GENDER"))
    spl = df.loc[df.GENDER=='M', ["DESIG", "NAMES", "GENDER"]]
    print(spl)
EMP1()

输出:

  DESIG  NAMES GENDER
0   EMP  name1      M
2   MGR  name3      M

答案 1 :(得分:0)

由于您正在编写函数来执行此操作,因此值得传递性别和列以选择作为参数:

import pandas as pd

def EMP1(gender, cols_to_keep):
    df = pd.DataFrame([
               ['EMP', 'name1', 'Boston', 'M'],
               ['EMP', 'name2', 'korea', 'F'],
               ['MGR', 'name3', 'North America','M'],
               ['MGR', 'name4', 'AUSIES', 'F']
                      ],
                columns=("DESIG", "NAMES", "CITIES", "GENDER"))

    result_df = df.loc[df.GENDER==gender][cols_to_keep]

    return result_df

spl = EMP1(gender='M', cols_to_keep=["DESIG", "NAMES", "GENDER"])

print(spl)

    DESIG  NAMES GENDER
0   EMP  name1      M
2   MGR  name3      M

答案 2 :(得分:0)

IIUC,使用:

df[['DESIG','NAMES','GENDER']].T.to_numpy().tolist()

输出:

[['EMP', 'EMP', 'MGR', 'MGR'],
 ['name1', 'name2', 'name3', 'name4'],
 ['M', 'F', 'M', 'F']]

或只是spl:

spl[['DESIG','NAMES','GENDER']].T.to_numpy().tolist()

输出:

[['EMP', 'MGR'], ['name1', 'name3'], ['M', 'M']]

答案 3 :(得分:0)

import pandas as pd
def EMP1():
    df = pd.DataFrame([
    ['EMP', 'name1', 'Boston', 'M'],
    ['EMP', 'name2', 'korea', 'F'],
    ['MGR', 'name3', 'North America','M'],
    ['MGR', 'name4', 'AUSIES', 'F']
    ],
    columns=("DESIG", "NAMES", "CITIES", "GENDER"))
    spl = df[df.GENDER=='M']
    print(df)
    for x in df.index:
        print('Details of employees names list ' + df.loc[x,'NAMES'] + 'reporting '
            ' for desig list ' +   df.loc[x,'DESIG'] + ' are gender list ' +  df.loc[x,'GENDER'])
EMP1()

也许是吗?我不知道是否有任何区别,但我使用的是最新版的熊猫