我有
In [67]: a
Out[67]:
0 1 2
0 1 2 3
1 4 5 6
当我跑
时In [69]: a.clip(lower=[1.5,2.5,3.5],axis=1)
我得到了
ValueError: other must be the same shape as self when an ndarray
这是预期的吗? 我期待得到类似的东西:
Out[72]:
0 1 2
0 1.5 2.5 3.5
1 4.0 5.0 6.0
答案 0 :(得分:7)
您可以使用系列代替numpy数组,以便标记对齐:
df
Out:
A B
0 1 4
1 2 5
2 3 6
df.clip(lower=pd.Series({'A': 2.5, 'B': 4.5}), axis=1)
Out:
A B
0 2.5 4.5
1 2.5 5.0
2 3.0 6.0
答案 1 :(得分:0)
lower:float或array_like,默认无
根据API reference,你应该使用相同形状的数组。
import numpy as np
import pandas as pd
...
print df.shape
(2, 3)
print df.clip(lower=(df.clip(lower=(np.array([[n+1.5 for n in range(df.shape[1])] for _ in range(df.shape[0])])), axis=1))
0 1 2
0 1.5 2.5 3.5
1 4.0 5.0 6.0