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