Python 熊猫基本功能传递困难

Python 熊猫基本功能传递困难,python,pandas,dataframe,apply,Python,Pandas,Dataframe,Apply,我有一个非常基本的函数,它接受字符串的前六个字母。我想将其应用于数据帧中的列 代码: 但是我得到:TypeError:six_dig()得到了一个意外的关键字参数“axis” 我甚至尝试过使用.map(),但都出现了同样的错误 如果我删除axis=1我得到:KeyError:[“STUFF”]不在索引中 我肯定错过了一些超级简单的东西,因为我以前在DataFrame列上使用过函数…我想您可以: dfp6 = dfp['C'].str[:6] 这将返回: In [14]: dfp6 Out[14

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

代码:

但是我得到:
TypeError:six_dig()得到了一个意外的关键字参数“axis”
我甚至尝试过使用
.map()
,但都出现了同样的错误

如果我删除axis=1我得到:
KeyError:[“STUFF”]不在索引中

我肯定错过了一些超级简单的东西,因为我以前在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

以您的示例为例,以下操作非常有效:

print(dfp['C'].map(six_dig))
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

如果要使用矢量化函数-以下是一个示例:

In [35]: def my_slice(ser, start=0, end=10, step=1):
    ...:     return ser.str.slice(start, end, step)
    ...:

In [36]: my_slice(dfp.C, end=6)
Out[36]:
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

我知道事情很简单。。。。我在我的示例周围添加了一个额外的
dfp[]
。。。。你花了很长时间才把它打出来让我看出来。你说得绝对正确。谢谢你救了我一小步@潘森的回答也让我明白了问题所在。@Matter很高兴这有帮助!
In [35]: def my_slice(ser, start=0, end=10, step=1):
    ...:     return ser.str.slice(start, end, step)
    ...:

In [36]: my_slice(dfp.C, end=6)
Out[36]:
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