我有一个数据帧'df'就是这样
a= (0,1,2,3...)
b = ('blue', 'red', 'brown', 'black')
c = ('new york', 'phoenix', 'chicago', 'orlando')
d = ('ny', 'phx', 'chi', 'ord')
我有一个需要字符串或unicode对象的函数func(d) 作为参数的类型d
例如:df ['d'] = func(df ['d'])
(我希望函数func()对d列中的每个项目进行操作)
如何将列'd'转换为字符串或unicode?它目前是一个系列,我得到了 错误“TypeError:期望的字符串或Unicode对象,系列找到”
我尝试过使用astype(str),但这似乎没有任何影响。
答案 0 :(得分:1)
IIUC,你的函数可能不支持字符串序列作为输入,只支持字符串。您可以使用apply
单独传递值:
>>> df = pd.DataFrame({"d": ['ny', 'phx', 'chi', 'ord']})
>>> def func(x): return x.upper()
>>> df
d
0 ny
1 phx
2 chi
3 ord
[4 rows x 1 columns]
>>> df["d"] = df["d"].apply(func)
>>> df
d
0 NY
1 PHX
2 CHI
3 ORD
[4 rows x 1 columns]