首页 > 解决方案 > 使用 pandas 函数的方法链接

问题描述

为什么我不能链接 get_dummies() 函数?

import pandas as pd

df = (pd
     .read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
     .drop(columns=['sepal_length'])
     .get_dummies()
)

这工作正常:

df = (pd
     .read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
     .drop(columns=['sepal_length'])
)
df = pd.get_dummies(df)

标签: pythonpandas

解决方案


DataFrame.pipe可以有助于链接未原生附加到 DataFrame 的方法或函数调用,例如pd.get_dummies

df = df.drop(columns=['sepal_length']).pipe(pd.get_dummies)

或与lambda

df = (
    df.drop(columns=['sepal_length'])
        .pipe(lambda current_df: pd.get_dummies(current_df))
)

示例数据框:

df = pd.DataFrame({'sepal_length': 1, 'a': list('ABACC'), 'b': list('ACCAB')})

df

   sepal_length  a  b
0             1  A  A
1             1  B  C
2             1  A  C
3             1  C  A
4             1  C  B

样本输出:

df = df.drop(columns=['sepal_length']).pipe(pd.get_dummies)

df

   a_A  a_B  a_C  b_A  b_B  b_C
0    1    0    0    1    0    0
1    0    1    0    0    0    1
2    1    0    0    0    0    1
3    0    0    1    1    0    0
4    0    0    1    0    1    0

推荐阅读