【发布时间】:2016-11-30 13:01:31
【问题描述】:
我有一个形状为 (n, p) 的数据框和一系列长度为 n 的数据框
我可以将它们与:
for i in df.keys():
df[i] > ts
有没有办法在一行中做到这一点?类似df > ts。
如果是,效率更高吗?
【问题讨论】:
我有一个形状为 (n, p) 的数据框和一系列长度为 n 的数据框
我可以将它们与:
for i in df.keys():
df[i] > ts
有没有办法在一行中做到这一点?类似df > ts。
如果是,效率更高吗?
【问题讨论】:
我觉得你需要DataFrame.gt:
print (df.gt(s, axis=0))
示例:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
s = pd.Series([1,2,3])
print (s)
0 1
1 2
2 3
dtype: int64
print (df.gt(s, axis=0))
A B C D E F
0 False True True False True True
1 False True True True True True
2 False True True True True False
如果需要其他函数进行比较:
【讨论】:
s<df<S?
print ((df.gt(s, axis=0)) | (df.lt(s1, axis=0)))