繁体   English   中英

Python Pandas 只需使用 lambda 读取名称列

[英]Python Pandas just read columns with names using lambda

您好,我知道有一种方法可以加载 csv 或 excel 数据并使用 lambda 表达式忽略空列名。

我以前用过这个表达,但现在不明白了。 是这样的:

import pandas as pd
file = 'my_file.csv'
with open(file) as w:
   df = pd.read_csv(w, usecols=lambda x: x not None)

所以我从 csv 得到这个标题:

A列 B列 D列 G列
单元格 1 单元格 2 单元格 3 单元格 4 单元格 5 单元格 6 13号牢房
单元格 7 单元格 8 单元格 9 单元格 10 单元格 11 12号牢房 14号牢房

因此:

A列 B列 D列 F列
单元格 1 单元格 2 单元格 4 单元格 6
单元格 7 单元格 8 单元格 10 12号牢房

代替

A列 B列 未命名:2 D列 未命名:4 G列 未命名:5
单元格 1 单元格 2 单元格 3 单元格 4 单元格 5 单元格 6 13号牢房
单元格 7 单元格 8 单元格 9 单元格 10 单元格 11 12号牢房 14号牢房

我不知道我的 lambda 表达式中的表达式或拒绝它的准确方法。

我知道有一种方法可以通过这种方式读取 csv,我不想在 usecols 列表中使用每个使用过的 header,因为列表会很长。

已经感谢您的帮助。

拜姆

Pandas 实际上读取的列没有 header 已经被“未命名:#”替换。 您可以通过运行来检查

pd.read_csv(w, usecols=lambda x: print(x))

因此,您可能想要删除这些列,而是过滤掉以“未命名”开头的列

df = pd.read_csv(w, usecols=lambda x: not x.startswith("Unnamed"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM