从excel文件创建数据框后,某些列无法被函数读取

2024-09-28 19:06:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我已正确地从Excel文件创建了数据框。我正在根据一个条件创建一个新的专栏,这是有效的:

df['sped_bin'] = np.where(df['SPED'] == 'Yes', 0, 1) 
print(df['sped_bin'])

0      1
1      1
2      1
3      0
4      1

但是,在同一excel电子表格中,有些列的值无法识别:

 df['gender_bin'] = np.where(df['Gender'] == 'Male', 0, 1) 
print(df['gender_bin'])


0      1
1      1
2      1
3      1
4      1

(我知道还有其他方法可以将“是/否”或“性别”转换为二进制。这与我的问题无关。)

excel文件中的两列有些不同,我无法理解。我尝试过的事情:

  1. 从数据帧字符串中删除所有空白:

    df.applymap(lambda x:x.strip()如果是instance(x,str)else x)

  2. 将格式从excel中的好列复制到坏列,重新保存,然后重新运行

  3. 从.xls转换为.xlsx,然后再转换回来

  4. 转换为csv文件,然后从该csv文件转换为数据帧

  5. 从excel文件的所有列中删除所有格式

  6. 我能想到的excel文件中的每一件事

工作效率太低的事情:

  1. 在excel文件的“SPED”列中键入“Male”,然后将该单元格从“SPED”列复制到“Gender”列
  2. 复制“SPED”列,将其重命名为“性别”,然后在该列中手动键入“男,女…”。(请不要)

excel文件很大,是从另一个程序输出的,我没有访问/源代码。如何使“性别”栏与“速度”栏相似???问题可能出在Excel文档中。请帮忙


Tags: 文件数据dfbinnpwheregenderexcel