python - 无法在 Pandas 中传递基本功能

标签 python pandas dataframe apply

我有一个非常基本的函数,它接受字符串的前六个字母。我想将它应用于我的 DataFrame 中的列。

代码:

import re
import pandas as pd
import numpy as np
dfp = pd.DataFrame({'A' : [np.NaN,np.NaN,3,4,5,5,3,1,5,np.NaN], 
                    'B' : [1,0,3,5,0,0,np.NaN,9,0,0], 
                    'C' : ['AA1233445','A9875', 'rmacy','Idaho Rx','Ab123455','TV192837','RX','Ohio Drugs','RX12345','USA Pharma'], 
                    'D' : [123456,123456,1234567,12345678,12345,12345,12345678,123456789,1234567,np.NaN],
                    'E' : ['Assign','Unassign','Assign','Ugly','Appreciate','Undo','Assign','Unicycle','Assign','Unicorn',]})
def six_dig(thing):
    return str(thing)[:6]

dfp6= dfp[dfp['C'].apply(six_dig, axis=1)]

但我得到:TypeError: six_dig() got an unexpected keyword argument 'axis' 我什至尝试使用 .map() 但得到了同样的错误。

如果我删除 axis=1,我会得到:KeyError: ["STUFF"] not in index

我一定是遗漏了一些非常简单的东西,因为我之前在 DataFrame 列上使用过函数......

最佳答案

我认为你可以:

dfp6 = dfp['C'].str[:6]

返回:

In [14]: dfp6
Out[14]: 
0    AA1233
1     A9875
2     rmacy
3    Idaho 
4    Ab1234
5    TV1928
6        RX
7    Ohio D
8    RX1234
9    USA Ph
Name: C, dtype: object

关于python - 无法在 Pandas 中传递基本功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42515013/

相关文章:

python - 正确格式的列表元素的长度

python - 无法导入模块 'lambda_function' : No module named 'stomp'

python - 获取当前时间之前可被 5 整除的最近时间

python - 如何在 python 中按分类顺序排序月份,即一月、二月、三月等......?

r - 查找具有特定因子组最小值的行

Python 数据框 : Finding a value in same row as a defined value in a different column

python - AttributeError : 'module' object has no attribute

python - pytest 时禁用每个测试 "dots"

python - 如何识别一列的数字连续且另一列的值相同?

python - 遍历一个 Dataframe 以获取基于另一个 Dataframe 的值