我有一个类似的日期:
a b c
1 x1 c1
2 x2 c2
3 x3 c3
我想将函数f仅应用于b列。
我做了类似的事情:
d2 = d['b'].apply(f)
但我的结果如
a b
1 xt
2 xt
3 xt
我想要列c,结果如下:
a b c
1 xt c1
2 xt c2
3 xt c3
如果不与第一个数据集合并,我怎么能这样做?
答案 0 :(得分:1)
我认为您尝试不使用apply
,因为它更慢,更好的是使用pandas
API函数:
e.g。如果需要将列替换为新的常量值:
df['b'] = 'xt'
print (df)
a b c
0 1 xt c1
1 2 xt c2
2 3 xt c3
但如果需要apply
:
def f(x):
return 'xt'
df['b'] = df.b.apply(f)
print (df)
a b c
0 1 xt c1
1 2 xt c2
2 3 xt c3
如果您需要新的DataFrame
,请先使用copy
:
d = df.copy()
def f(x):
return 'xt'
d['b'] = d.b.apply(f)
print (d)
a b c
0 1 xt c1
1 2 xt c2
2 3 xt c3