这可能不是一个大问题,在执行.apply()之前,我只是没有注意到None
的输出
玩具示例:
mydf = pd.DataFrame({'col1':['test1',np.nan,'test3','test4'],
'col2':['test5','test6','test7','test8']})
mydf
col1 col2
0 test1 test5
1 NaN test6
2 test3 test7
3 test4 test8
用于将值一起添加到字符串中的函数:
def myfunc(row):
thing = str(row['col1']) + str(row['col2'])
print(thing)
应用:
mydf.apply(myfunc,axis=1)
我的输出:
test1test5
nantest6
test3test7
test4test8
0 None
1 None
2 None
3 None
dtype: object
有什么需要担心的吗?不久我将对某些真实数据应用类似的方法。 如果有帮助,我将在Jupyter Notebook中执行此操作。
答案 0 :(得分:3)
您应该返回字符串而不是打印它。
答案 1 :(得分:0)
在申请df之前不打印用户返回信息。
>>> mydf
col1 col2
0 test1 test5
1 NaN test6
2 test3 test7
3 test4 test8
>>> def myfunc(row):
... thing = str(row['col1']) + str(row['col2'])
... return thing
...
>>> mydf.apply(myfunc,axis=1)
0 test1test5
1 nantest6
2 test3test7
3 test4test8
dtype: object
只是想以另一种方式来做..
>>> cols = ['col1', 'col2']
>>> mydf[cols].astype(str).sum(axis=1)
0 test1test5
1 nantest6
2 test3test7
3 test4test8
dtype: object