python-创建具有唯一索引的Pandas Dataframe
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-创建具有唯一索引的Pandas Dataframe,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1456字,纯文字阅读大概需要3分钟。
内容图文
是否可以创建一个具有唯一索引或列的数据框,类似于在mysql中创建唯一键,如果尝试添加重复索引,它将返回错误?
还是我唯一的选择来创建一个if语句并在附加数据之前检查数据框中的值?
编辑:
看来我的问题有点不清楚.对于唯一列,我的意思是我们不能在列中包含非唯一值.
用
df.append(new_row, verify_integrity=True)
我们可以检查所有列,但是如何只检查一两个列呢?
解决方法:
您可以使用df.append(..., verify_integrity=True)维护唯一的行索引:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(12).reshape(3,4), columns=list('ABCD'))
dup_row = pd.DataFrame([[10,20,30,40]], columns=list('ABCD'), index=[1])
new_row = pd.DataFrame([[10,20,30,40]], columns=list('ABCD'), index=[9])
这将成功追加新行(索引为9):
df.append(new_row, verify_integrity=True)
# A B C D
# 0 0 1 2 3
# 1 4 5 6 7
# 2 8 9 10 11
# 9 10 20 30 40
这会引发ValueError,因为索引中已经有1:
df.append(dup_row, verify_integrity=True)
# ValueError: Indexes have overlapping values: [1]
尽管上面的方法可以确保唯一的行索引,但是我不知道用于确保唯一的列索引的类似方法.从理论上讲,您可以转置DataFrame并附加verify_integrity = True,然后再次转置,但通常我不建议这样做,因为当列dtypes不相同时,转置可以更改dtypes. (当列dtypes不一致时,转置后的DataFrame会获得对象dtype的列.在对象数组之间来回转换可能会降低性能.)
如果您需要唯一的行索引和列索引,那么也许更好的选择是将DataFrame替换为stack,以便所有唯一的列索引级别都成为行索引级别.然后,您可以在重塑的DataFrame上使用带有verify_integrity = True的append.
内容总结
以上是互联网集市为您收集整理的python-创建具有唯一索引的Pandas Dataframe全部内容,希望文章能够帮你解决python-创建具有唯一索引的Pandas Dataframe所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。