python-3.x - 具有重复名称的 Pandas read_table

标签 python-3.x pandas

在指定重复列名的同时读取表格时 - 假设有两个不同的名称 - pandas 0.16.1 将一遍又一遍地复制数据的最后两列。

In [1]:
​
df = pd.read_table('Datasets/tbl.csv', header=0, names=['one','two','one','two','one']) 
df

tbl.csv 包含一个包含 5 个不同列的表格。将重复最后两个而不是给出所有列。

Out[1]:
one two one two one
0   0.132846    0.120522    0.132846    0.120522    0.132846
1   -0.059710   -0.151850   -0.059710   -0.151850   -0.059710
2   0.003686    0.011072    0.003686    0.011072    0.003686
3   -0.220749   -0.029358   -0.220749   -0.029358   -0.220749

实际表格中的每一列都有不同的值。在这里,重复相同的两列(对应于文件中的最后两列)。没有给出错误或警告。

您认为这是错误还是有意为之?我发现像这样默默地改变输入是非常危险的。还是我的无知?

最佳答案

在索引中使用重复值本质上是有问题的。 它们导致歧义。您认为运行良好的代码可能会在具有非唯一索引的 DataFrame 上突然失败。 argmax,例如,可以 lead to a similar pitfall当 DataFrame 在索引中有重复时。

最好避免在(行或 列)索引,如果可以的话。如果您需要使用非唯一索引,请谨慎使用。 仔细检查重复值对代码行为的影响。

在这种情况下,您可以使用

df = pd.read_csv('data', header=None) 
df.columns = ['one','two','one','two','one']

相反。

关于python-3.x - 具有重复名称的 Pandas read_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207560/

相关文章:

python - 如何在 Django 中使用 FileField 测试表单?

python - pandas 读取顶行左列空白的 Excel 文件时出现问题

python-3.x - 如何在 AWS Lambda Python 3.6 环境中运行 aws-cli?

python - Pandas :如何过滤数据帧中至少出现 n 次的重复项目的数据帧

python - 基于组分配的 Pandas 数据帧到稀疏矩阵(如果在组中则为 1,如果不在组中则为 0)

python - 在 pandas 中滚动平均值后重新采样

python - 如何将分组的文本逐一组合

python - future 警告 : Using a non-tuple sequence for multidimensional indexing is deprecated use `arr[tuple(seq)]`

python - 使用 glob 重复列读取多个文件

python - 如何实时查看变量?