我从Excel文件中导入数据。但是excel文件中合并单元格的格式在python中不匹配。因此,我必须在python中修改数据。
例如:我在python中导入的数据如下
/**
* Sets Parity Bits
* @param parity parity bits e.g. UartConfig.PARITY_NONE
* @return true : successful, false : fail
*/
public boolean setParity(int parity) throws RuntimeException{
synchronized (LOCK) {
if(mSerial == null) return false;
return mSerial.setParity(parity);
}
我想要的结果是:
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
我尝试使用for循环来解决此问题。但是花了很多时间,而且我有一个庞大的数据集。我不知道是否有更快的方法。
答案 0 :(得分:1)
类似.fillna()
is your friend –引用文档:
我们还可以向前或向后传播非null值。
>>> 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
答案 1 :(得分:0)
这正是.fillna()
中pandas
函数的使用
答案 2 :(得分:0)
您可以借助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
希望对您有帮助。