首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫在从Excel读取数据时将整数转换为实数

熊猫在从Excel读取数据时将整数转换为实数
EN

Stack Overflow用户
提问于 2020-09-26 22:35:51
回答 1查看 526关注 0票数 0

我最近开始探索python来分析excel数据。我有一个包含两个工作表的excel文件,每个工作表都有一个矩阵(m= 1000行和n= 999列),两个矩阵的.The元素是相互关联的:一个矩阵涉及位移值,另一个矩阵涉及与每个位移对应的力值。通过m=1000数值模拟和n= 999增量得到了位移和相应的力。是否有可能识别仅对应于整数的位移值的力值?或者,作为另一种选择,是否可以将位移矩阵中的所有十进制数替换为0?我试图将excel文件读入Pandas数据,但是,位移矩阵中的所有值似乎都表示为“实数”(例如excel中的数字"1“、"2”、"3“等等),其浮点数为"1.”、"2.“、”3“。在蟒蛇中)。感谢您的关注。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 09:01:42

让我们做一个小规模的例子(3 * 3)。

我用两个工作表准备了一个Excel文件,并读取它们:

代码语言:javascript
复制
displ = pd.read_excel('Input_2.xlsx', 'Displ')
forces = pd.read_excel('Input_2.xlsx', 'Forces')

这两个DataFrames都包含:

代码语言:javascript
复制
displ                      forces
     C1    C2    C3              C1     C2     C3
0  10.0  12.1  11.3        0  120.1  130.2  140.3
1  12.5  13.0  13.5        1  150.4  160.5  170.6
2  12.6  13.6  13.8        2  180.7  190.8  200.9

要标识包含整数的displ元素(实际上,仍然是浮点数,但使用小数部分== 0.0),您可以运行:

代码语言:javascript
复制
displ.mod(1.0) == 0.0

你会得到:

代码语言:javascript
复制
      C1     C2     C3
0   True  False  False
1  False   True  False
2  False  False  False

要获得其他值的相应力值和NaN,可以运行:

代码语言:javascript
复制
forces.where(displ.mod(1.0) == 0.0)

得到:

代码语言:javascript
复制
      C1     C2  C3
0  120.1    NaN NaN
1    NaN  160.5 NaN
2    NaN    NaN NaN

另一种选择是获得相应元素为零小数部分的displ中的索引列表。实际上,它是一个Numpy函数,因此它对基础Numpy数组进行操作,并返回整型(基于零的)索引:

代码语言:javascript
复制
ind = np.nonzero((displ.mod(1.0) == 0.0).values)

结果是:

代码语言:javascript
复制
(array([0, 1], dtype=int64), array([0, 1], dtype=int64))

因此,这是一个指数的二元组:

  • 行索引,
  • 列索引。

您还可以从强制(实际上也可以从基础Numpy数组)检索指示元素的列表,运行:

代码语言:javascript
复制
forces.values[ind]

结果是:

代码语言:javascript
复制
array([120.1, 160.5])

若要用零替换displ的“整型”元素,可以运行:

代码语言:javascript
复制
displ.mask(displ.mod(1.0) == 0.0, 0, inplace=True)

现在,displ包含:

代码语言:javascript
复制
     C1    C2    C3
0   0.0  12.1  11.3
1  12.5   0.0  13.5
2  12.6  13.6  13.8

注意,“想要”的元素仍然是float零,但是这是Pandas的一个特性,每个列都有一个类型,适合这个列中的所有元素(在本例中只是浮动)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64083134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档