我目前正在尝试用1填充空白单元格,并为这些单元格保留字符串值(例如S,R,G,B)。
我的数据源是一个具有以下内容的Excel文件。
原始数据:
Customer ID 1 2 3 4
0010 R G G
S A A
0599 R B
0442 A B
*请注意,0010是合并的单元格,而第1,2,3,4列未合并。
预期的输出数据
Customer ID 1 2 3 4
0010 1 R G G
1 S A A 1
0599 R 1 1 B
0442 A B 1 1
我想保留合并的“客户ID”。 有什么办法可以解决此问题? 我还可以将函数设置为仅应用于某些行和列吗? 还要将df粘贴回某些行和列?
当前代码:
data = pd.read_excel('path',header=0)
df = pd.DataFrame(data)
df= df.fillna(1)
df.to_excel('path', index=False)
答案 0 :(得分:0)
尝试指定Customer ID
字段为object
。然后,这将导致空值显示为Nan
。然后fillna()
应该会按预期工作:
import pandas as pd
df = pd.read_excel('path.xlsx', header=0, dtype={'Customer ID':object})
print(df)
df = df.fillna('1')
print(df)
df.to_excel('path_out.xlsx', index=False)
这将显示:
Customer ID 1 2 3 4
0 0010 NaN R G G
1 NaN S A A NaN
2 0599 R NaN NaN B
3 0442 A B NaN NaN
Customer ID 1 2 3 4
0 0010 1 R G G
1 1 S A A 1
2 0599 R 1 1 B
3 0442 A B 1 1
如果Customer ID
是合并的单元格,例如合并A
和B
,则可以跳过合并列,如下所示:
df = pd.read_excel('path.xlsx', usecols="A,C:F", header=0, dtype={'Customer ID':object})