在pandas df中创建新列,填充True,False取决于float列是否为整数(`float.is_integer`)

时间:2016-11-01 23:51:17

标签: python pandas dataframe

我有一只大熊猫df['value'],其中df['is_it_whole'][i]是一系列花车。

  • 有些花车将是整数(如25.0)。我想要创建一个新列1,其值为True(或df['value'][i]),相应的0是整数,False或{{1否则。
  • 我知道我可以做一个for循环,但我想知道是否有任何技巧可以用来快速完成(我有一个很大的df)。
  • 我尝试使用df['is_it_whole'] = df['value'].is_integer(),但是pandas系列不支持is_integer方法,我正在寻找类似的方法。

建议?

4 个答案:

答案 0 :(得分:3)

Join

答案 1 :(得分:1)

您可以尝试:

<script type="text/babel">

或考虑浮点数不准确:

<?php $username = 'Eric Andre'; ?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.min.js"></script>
<script type="text/babel">
  ReactDOM.render( <Greeting username="<?php echo $username; ?>"/>, document.body );
</script>

答案 2 :(得分:0)

这将is_integer应用于系列中的每个元素:

df['is_it_whole'] = df['value'].apply(lambda x: x.is_integer())

答案 3 :(得分:0)

您不需要声明lambda函数。只需直接申请df['value'].map(float.is_integer)

import pandas as pd
df = pd.DataFrame([['A', 1], ['B', 2.5], ['C', 3.0], ['D', 3.2]], columns=['label', 'value'])
df['is_it_whole'] = df['value'].map(float.is_integer)

>>> df
  label  value  is_it_whole
0     A    1.0         True
1     B    2.5        False
2     C    3.0         True
3     D    3.2        False