python - 如何将函数与 pandas 数据框一起使用

标签 python pandas

如何将函数与 pandas 数据框一起使用。例如:

a       | b
london  | uk
newyork | usa
berlin  | germany

df1 = df[['a', 'b']]

def doSomething(df1):
    return df1

doSomething() 将返回两列 ab,但是如何仅返回 a

def doSomething(df1):
    return df1.a 

df1.applymap(doSomething)

AttributeError: ("'str' object has no attribute 'a'", u'occurred at index a')

最佳答案

您可以使用:

df = pd.DataFrame({'a':['london','newyork','berlin'],
                   'b':['uk','usa','germany'],
                   'c':[7,8,9]})

print (df)
df1 = df[['a', 'b']]

def doSomething(x):
    return x.a

#function works with DataFrame 
print (doSomething(df1))
0     london
1    newyork
2     berlin
Name: a, dtype: object

#function works with Series, columns are transformed to index of Series
#return for each row value of Series with index a which is transformed to column in output df
print (df1.apply(doSomething, axis=1))
0     london
1    newyork
2     berlin
dtype: object

如果需要applymap它适用于 df 的每个元素:

def doSomething(x):
    return x + '___'

#function works with element
print (df1.applymap(doSomething))
            a           b
0   london___       uk___
1  newyork___      usa___
2   berlin___  germany___

关于python - 如何将函数与 pandas 数据框一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41015805/

相关文章:

python - Groupby 以及 value_counts 的工作原理

python - 如何仅转置特定数量并将其添加到现有数据框

python - pandas python 中没有名为 read_csv 的属性

python - 停止程序处理并停止回溯?

python - 比较两个数组会引发警告。有什么解决方法吗?

python - Mysql和python用于考勤系统

python - 一次将多列上的 Pandas 日期时间从 Unix 纪元时间转换为东部时间

python - 将 python 前瞻断言正则表达式转换为有效的 Golang

pandas - NumPy/ Pandas : convert array of "steps" into bool mask

python - pandas 的高性能笛卡尔积(CROSS JOIN)