Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 逐元素向下广播系列或数据帧元素_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 逐元素向下广播系列或数据帧元素

Python 逐元素向下广播系列或数据帧元素,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,考虑pd.DataFramedf df = pd.DataFrame([ [1.0, 1.5], [2.2, 3.0] ]) 如果单个元素相等,我想将它们向下转换为int。我知道每一列都将以对象类型结束。没关系 范围索引:2个条目,0到1 数据列(共2列): 0 2非空对象 1 2非空对象 数据类型:对象(2) 内存使用:112.0+字节 首先需要将dtype转换为对象,然后可以使用掩码覆盖df上使用astype(int)的感兴趣值,假设所有列都是

考虑
pd.DataFrame
df

df = pd.DataFrame([
        [1.0, 1.5],
        [2.2, 3.0]
    ])

如果单个元素相等,我想将它们向下转换为int。我知道每一列都将以对象类型结束。没关系


范围索引:2个条目,0到1
数据列(共2列):
0 2非空对象
1 2非空对象
数据类型:对象(2)
内存使用:112.0+字节

首先需要将
dtype
转换为
对象
,然后可以使用掩码覆盖df上使用
astype(int)
的感兴趣值,假设所有列都是数字:

In [120]:
df = df.astype(object)
df[df == df.astype(int)] = df.astype(int)
df

Out[120]:
     0    1
0    1  1.5
1  2.2    3
如果没有强制转换,分配将保持为浮动

您可以看到各个类型已更改:

In [123]:
df.applymap(type)

Out[123]:
                 0                1
0    <class 'int'>  <class 'float'>
1  <class 'float'>    <class 'int'>
[123]中的

df.applymap(类型)
出[123]:
0                1
0
1.

当我检查
类型(df.at[0,0])
时,它会给我
浮动
-你知道为什么吗?是谁在做额外的工作casting@MaxU对不起,我得到了
int
您是否将结果分配回?是的,我得到了
df.dtypes
为两列返回
object
,我不知道,因为这对我使用pandas
0.19.0
和numpy
1.11.0
python 64位3.4很有意思-我使用的是python 3.5.2 64位、pandas 0.19.1、numpy 1.11.1这是非惯用的、无性能的,所以没有理由这么做this@Jeff我没有要求表演。这是报告的简单方便。我想转换成字符串进一步向下行,并把其他东西。我确定这是一个最小的例子。
In [123]:
df.applymap(type)

Out[123]:
                 0                1
0    <class 'int'>  <class 'float'>
1  <class 'float'>    <class 'int'>