首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pandas能否自动识别是否存在标头

pandas能否自动识别是否存在标头
EN

Stack Overflow用户
提问于 2018-11-01 11:42:07
回答 3查看 2.3K关注 0票数 0

熊猫新手在这里,

我读到pandas.read_csv自动假设第一列是标题列,如果不是这样,我应该传递一个标志header=None

现在我有一个加载CSV的代码,CSV有时有头,有时没有……有没有一种方法或标志可以让read_csv尝试并自动检测标题行?

如果一列(或几列)在除第一行以外的所有行中都有数字,则它是标题行,否则没有标题。

EN

回答 3

Stack Overflow用户

发布于 2018-11-01 12:21:47

好的,这么快(可能也很脆弱)的想法:

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd

df = pd.DataFrame(columns=["ints_only", "strings_only"],
                  data=[[1,"a"], [3,"b"]])

df.to_csv("header.csv")
df.to_csv("noheader.csv", header=None)


def has_header(file, nrows=20):
    df = pd.read_csv(file, header=None, nrows=nrows)
    df_header = pd.read_csv(file, nrows=nrows)
    return tuple(df.dtypes) != tuple(df_header.dtypes)


has_header("header.csv")    # gives True
has_header("noheader.csv")  # gives False

这是怎么回事?

我们读取csv文件的前n行(默认为20行)。一次有标题,一次没有标题。然后我们来看一下pandas为每一列分配了什么数据类型。如果忽略第一行时数据类型没有改变,那么就没有头(当然,只有当你总是至少有一列的头是字符串,但所有其他条目都不是字符串的数据类型,例如所有的浮点数)。

票数 5
EN

Stack Overflow用户

发布于 2018-11-01 12:20:43

您可以使用

字符串包含

代码语言:javascript
运行
AI代码解释
复制
df['column_name'].str.contains('text_you_are_expecting_in_header')

这将根据列条目是否包含您要查找的内容返回True/False。

然后,您可以读出第一个条目(用于标题行),如果它与您在标题中预期的文本相匹配,那么您就有了标题,否则就没有标题。

票数 0
EN

Stack Overflow用户

发布于 2021-12-23 02:03:20

当数据帧没有报头时,它的Dataframe.columns属性使用数字索引。否则,它将使用字符串。因此,只需检查第一个列标签的类型。

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
import io

def has_header(df):
    return isinstance(df.columns[0], str)

csv=u"""col1,col2,col3
5,2,7
4,9,6
7,3,1"""

df1 = pd.read_csv(io.StringIO(csv))
print(df1.head())
if has_header(df1):
    print("Dataframe 1 has header")
else:
    print("Dataframe 1 doesn't have header")

csv=u"""5,2,7
4,9,6
7,3,1"""

df2 = pd.read_csv(io.StringIO(csv), header=None)
print(df2.head())
if has_header(df2):
    print("Dataframe 2 has header")
else:
    print("Dataframe 2 doesn't have header")

df3= pd.read_csv(io.StringIO(csv))
print(df3.head())
if has_header(df3):
    print("Dataframe 3 has header")
else:
    print("Dataframe 3 doesn't have header")

df4 = pd.read_csv(io.StringIO(csv), header='infer')
print(df4.head())
if has_header(df4):
    print("Dataframe 4 has header")
else:
    print("Dataframe 4 doesn't have header")

以下是上述代码产生的输出。

代码语言:javascript
运行
AI代码解释
复制
   col1  col2  col3
0     5     2     7
1     4     9     6
2     7     3     1
Dataframe 1 has header
   0  1  2
0  5  2  7
1  4  9  6
2  7  3  1
Dataframe 2 doesn't have header
   5  2  7
0  4  9  6
1  7  3  1
Dataframe 3 has header
   5  2  7
0  4  9  6
1  7  3  1
Dataframe 4 has header

请注意,在使用pd.read_csv创建Dataframe时,必须显式设置header=None。否则,将从文件的第一行推断列名(请参见pasntas.read_csv)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53100598

复制
相关文章
通过主机标头的 XSS
在 IE 中处理重定向时有一个有趣的错误,它可以将任意字符插入到 Host 标头中。假设您有以下 http 响应:
Khan安全团队
2022/01/11
1.7K0
通过 HTTP 标头的 XSS
在某些情况下,在应用程序的一个 HTTP 标头中传递的信息未正确清理,并在请求页面的某处或另一端输出,从而导致 XSS 情况。
Khan安全团队
2022/03/09
2.2K0
设置和获取HTTP标头
%Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们:
用户7741497
2022/06/09
2.6K0
常见的HTTP标头介绍
在网络爬虫的实践过程中会遇到诸多挑战,被屏蔽是最令人头疼的一个。幸好,有许多技术可以帮助您免受IP屏蔽带来的影响,这其中,HTTP标头(HTTP Headers)的使用和优化是最有效的方法之一,但它往往也是最被大家低估的方法之一。
用户7850017
2022/05/07
1.2K0
常见的HTTP标头介绍
JavaScript 能否修改 Referer 请求头
正如题目,本文主题也很直白,主要就是围绕这个问题展开。JavaScript 能否修改 Referer 请求头?现在 JavaScript 的能力越来越强大,JavaScript 似乎无所不能,修改一个小小的 Referer 请求头似乎看来不在话下(本文讨论的 JavaScript 仅限于在浏览器中执行,不包括 Nodejs)。
madneal
2021/03/16
5.4K0
JavaScript 能否修改 Referer 请求头
自动识别是否穿着工作服
自动识别是否穿着工作服通过opencv+python网络模型AI视频分析技术,自动识别是否穿着工作服对作业区域现场人员穿戴进行7*24小时实时监测,自动识别是否穿着工作服利用最新的深度学习与大数据技术为安全生产保驾护航。OpenCV可以在不同的系统平台上使用,包括Windows,Linux,OS,X,Android和iOS。基于CUDA和OpenCL的高速GPU操作接口也在积极开发中。自从第一个预览版本于2000年公开以来,目前已更新至OpenCV4.5.3。OpenCV基于C++实现,同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Python API,结合了OpenCV C++API和Python语言的最佳特性。完善的传统计算机视觉算法,涵盖主流的机器学习算法,同时添加了对深度学习的支持。
燧机科技
2023/03/18
7570
自动识别是否穿着工作服
python 判断属性是否存在
hasattr(object, name)    说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。    参数object:对象。    参数name:特性名称。    返回为True或者为False 不过自己也可以定义一个方法 def getattribute(self, name): try:
py3study
2020/01/06
5.4K0
41:判断元素是否存在
41:判断元素是否存在 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 有一个集合M是这样生成的: (1) 已知 k 是集合 M 的元素; (2) 如果 y 是 M 的元素,那么, 2y+1 和 3y+1 都是 M 的元素; (3) 除了上述二种情况外,没有别的数能够成为 M 的一个元素。 问题:任意给定 k 和 x,请判断 x 是否是 M 的元素。这里的 k是无符号整数,x 不大于 100000, 如果是,则输出YES,否则,输出 NO 输入输入整数 k 和 x,
attack
2018/04/11
4K0
PathFileExists 文件目录是否存在
大家好,又见面了,我是你们的朋友全栈君。if(!PathFileExists(_T(“d:\\test”)))
全栈程序员站长
2022/09/14
1.7K0
判断微信是否存在
public static boolean isWeixinAvilible(Context context) { final PackageManager packageManager = context.getPackageManager();// 获取packagemanager List pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息 if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { String pn = pinfo.get(i).packageName; if (pn.equals(“com.tencent.mm”)) { return true; } } }
tea9
2022/07/16
3.6K0
php判断文件是否存在
最近博客需要这么个功能,最初是想用file_exists()来判断本地文件的,奈何地址那里我填的是“http://zezeshe.com/usr/themes/Themia/img/sj/85.jpg”这货,因为我的错误填写,让我以为是主机的毛病,于是改用 fopen()方法,这个在我的韩国主机上没有问题,可我博客在的中国香港主机却死活不好使,问了客服说是@ 这个符号会消灭所有返回,建议我用CURL 方法,还没等我开始用,客服又说了:你不会是想判断本地文件吧? 我的回答当然是肯定的了。客服又说用file_exists()方法即可,然后我就把我错误的写法发了过去,质疑,然后客服就告诉了我问题所在。
泽泽社长
2023/04/17
5.5K0
js判断方法是否存在
if(typeof yourfunctionname === 'function'){ //存在且是function } else{ //不存在或不是function } 或者 type
似水的流年
2019/12/07
20.9K0
Log4Shell HTTP 标头注入
此模块需要 Metasploit:https://metasploit.com/download
Khan安全团队
2022/01/14
1.2K0
GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
AI 的爸爸,名字叫 Nick Bourdakos (简称 “尼克”) ,是来自 IBM 的程序猿。
GitHubDaily
2019/10/16
1.7K0
GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
「HTTP标头」都给你整理好了
HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍
Java3y
2020/02/19
5.9K0
「HTTP标头」都给你整理好了
python 检查是否存在ddos攻击
import dpkt import socket import optparse
用户5760343
2019/07/31
3.9K0
python 检查是否存在ddos攻击
C/C++ 判断进程是否存在
#include <windows.h> #include <tlhelp32.h> //进程快照函数头文件 #include <stdio.h> bool getProcess(const char *procressName) //此函数进程名不区分大小写 { char pName[MAX_PATH]; //和PROCESSENTRY32结构体中的szExeFile字符数组保持一致,便于比较
王瑞MVP
2022/12/28
3.5K0
sql查询序列是否存在_oracle if判断是否为空
select sequence_name from user_sequences where sequence_name= ‘参数’
全栈程序员站长
2022/11/07
2.9K0
判断单链表是否存在环
周末参加完美世界校园招聘中就有一道判断单链表是否有环的编程题。 写一个C/C++函数,来判断一个单链表是否具有环,如果存在环,则给出环的入口点。 有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。 现在需要解决的问题有以下两个: 如何判断一个链表是不是这类链表? 如果链表为存在环,如果找到环的入口点? 判断链表是否存在环,办法为: 设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则
猿人谷
2018/01/17
2.8K0
VC++ 判断文件是否存在
使用GetFileAttributes函数获取文件属性 INVALID_FILE_ATTRIBUTES 执行失败 FILE_ATTRIBUTE_DIRECTORY 文件夹类型
ClearSeve
2022/02/11
4K0

相似问题

pandas标头确实存在,但仍获取KeyError

325

如何检查包的标头是否存在?

11

JQuery检查HTML标头是否已经存在

11

使用Pandas命名标头

20

Python请求-检查是否存在特定的标头

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档