从Excel向MATLAB中导入数据出现了nan怎么处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Excel向MATLAB中导入数据出现了nan怎么处理相关的知识,希望对你有一定的参考价值。
是因为数据过大过小导致?
1、在matlab中生成数据,并且写入到excel文件中。具体代码如下图所示:
2、下面来看一下生成的myExample.xlsx文件里面是否含有matlab所生成的数据。有图中可以看出,生成的数据已经全部写入了myExample.xlsx文件。
3、从excel的第一个worksheet中读取数据,代码如下图所示:
4、从上一步生成的excel文件myExample.xlsx中读取局部的数据,具体代码及结果如下图所示:
5、读取一列数据,从excel文件myExample.xlsx中读取一整列的数据,具体代码及结果如下图所示:
6、从excel文件myExample.xlsx中分别读取数值型、文本型和未处理的数据,具体代码及结果如下图所示:
如何用以前的值填充数据框? [复制]
【中文标题】如何用以前的值填充数据框? [复制]【英文标题】:how to fill dataframe with former value? [duplicate] 【发布时间】:2019-11-09 03:28:31 【问题描述】:我从 excel 文件中导入数据。但是excel文件中合并单元格的格式在python中不匹配。因此,我不得不修改python中的数据。
例如:我在python中导入的数据是这样的
0 aa
1 NaN
2 NaN
3 NaN
4 b
5 NaN
6 NaN
7 NaN
8 NaN
9 ccc
10 NaN
11 NaN
12 NaN
13 dd
14 NaN
15 NaN
16 NaN
我想要的结果是:
0 aa
1 aa
2 aa
3 aa
4 b
5 b
6 b
7 b
8 b
9 ccc
10 ccc
11 ccc
12 ccc
13 dd
14 dd
15 dd
16 dd
我尝试使用 for 循环来解决问题。但这花了很多时间,而且我有一个庞大的数据集。不知道有没有更快的方法。
【问题讨论】:
您正在将数据加载到pandas
数据框,对吧?
数据类型应该是字符串而不是浮点数,抱歉
如果您对问题有补充,最好编辑问题并将其添加到那里,而不是在评论中。
@Itamar Mushkin 是的
转换类型-df = df.astype(str)
【参考方案1】:
看起来像 .fillna()
is your friend – 引用文档::
我们还可以向前或向后传播非空值。
>>> df
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
3 NaN 3.0 NaN 4
>>> df.fillna(method='ffill')
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 3.0 4.0 NaN 5
3 3.0 3.0 NaN 4
【讨论】:
啊,打败我了 :-) @AKX 你能帮我重新修改问题格式吗?【参考方案2】:这正是pandas
中.fillna()
函数的使用
【讨论】:
【参考方案3】:您可以借助apply
和fillna
方法获得您想要的结果:-
import pandas as pd
import numpy as np
df = pd.DataFrame(data = 'A':['a', np.nan, np.nan, 'b', np.nan])
l = []
def change(value):
if value == "bhale":
value = l[-1]
return value
else:
l.append(value)
return value
# First converting NaN values into any string value like `bhale` here
df['A'] = df['A'].fillna('bhale')
df["A"] = df['A'].apply(change) # Using apply method.
df
希望对你有帮助。
【讨论】:
以上是关于从Excel向MATLAB中导入数据出现了nan怎么处理的主要内容,如果未能解决你的问题,请参考以下文章
从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法