python pandas - 将列分隔为另一列

时间:2016-02-16 17:48:57

标签: python python-2.7 pandas dataframe

我正在尝试向我的DataFrame添加一列,这是另外两列的分割产物,如下所示:

df['$/hour'] = df['$']/df['hours']

这很好用,但如果['hours']中的值小于1,则['$/hour']值大于['$']中的值,这不是什么我想要。

有没有办法控制操作,以便['hours'] < 1然后df['$/hour'] = df['$']

3 个答案:

答案 0 :(得分:8)

您可以使用numpy.where

print df
    hours  $
0       0  8
1       0  9
2       0  9
3       3  6
4       6  4
5       3  7
6       5  5
7      10  1
8       9  3
9       3  6
10      5  4
11      5  7

df['$/hour'] = np.where(df['hours'] < 1, df['hours'], df['$']/df['hours'])
print df
    hours  $    $/hour
0       0  8  0.000000
1       0  9  0.000000
2       0  9  0.000000
3       3  6  2.000000
4       6  4  0.666667
5       3  7  2.333333
6       5  5  1.000000
7      10  1  0.100000
8       9  3  0.333333
9       3  6  2.000000
10      5  4  0.800000
11      5  7  1.400000

答案 1 :(得分:3)

您还可以过滤并选择要使用DataFrame.loc设置的索引:

ptr[i] += (unsigned char)32;

答案 2 :(得分:2)

df['$/hour'] = df.apply(lambda x: x['$'] if x['$'] < 1 else x['$']/x['hours'], axis=1)