Pandas 如何将函数应用于不带“QUOTE”的列上的函数;应用“;?
我有一个数据帧,如:Pandas 如何将函数应用于不带“QUOTE”的列上的函数;应用“;?,pandas,Pandas,我有一个数据帧,如: A | B | C | ... 1000 | 600 | 600 | productdesc 1500 | 400 | 600 | productdesc 1000 | 600 | 300 | productdesc 我想基于以下内容创建一个新的列D: def get_result(): if A > 1000 or B > 600 or C > 600: return 1 else: ret
A | B | C | ...
1000 | 600 | 600 | productdesc
1500 | 400 | 600 | productdesc
1000 | 600 | 300 | productdesc
我想基于以下内容创建一个新的列D:
def get_result():
if A > 1000 or B > 600 or C > 600:
return 1
else:
return 0
导致:
A | B | C | ... | D
1000 | 600 | 600 | productdesc | 0
1500 | 400 | 600 | productdesc | 1
1000 | 600 | 300 | productdesc | 0
由于数据帧大小,我无法使用。请应用,因为它很慢
但是我找不到一种快速的方法来将函数应用到列上/基于函数创建一个新列,其中的参数基于其他列?让我们试试
any
df['D'] = df.gt({'A':1000,'B':600,'C':600}).any(1).astype(int)
#df['D']
Out[327]:
0 0
1 1
2 0
dtype: int32
让我们试试
any
df['D'] = df.gt({'A':1000,'B':600,'C':600}).any(1).astype(int)
#df['D']
Out[327]:
0 0
1 1
2 0
dtype: int32
使用:
或:
使用:
或:
这给了我“ValueError:无法强制转换为序列,长度必须为10:给定3”。我的数据框架有10列,一些int,一些object,一些string。只有AB C与D相关,我如何用你的解决方案来解决这个问题?@Vega df['D']=df['A','B','C']].gt({'A':1000,'B':600,'C':600})。any(1)。astype(int)@Vega YW:-)愉快的编码~给我“ValueError:无法强制到序列,长度必须是10:3”。我的数据框架有10列,一些int,一些object,一些string。只有ABC与D相关,我如何用你的解决方案来解决这个问题?@Vega df['D']=df['A','B','C']].gt({'A':1000,'B':600,'C':600})。任意(1)。astype(int)@Vega YW:-)快乐编码~
df['D'] = df.gt([1000,600,600]).any(1).astype(int)