九月=’;’不在 Python 中塑造数据框

原文标题sep=’;’ not shaping dataframe in Python

我正在导入一个以分号分隔的文件。我的代码:

df = pd.read_csv('bank-full.csv', sep = ';')
print(df.shape)

当我在 Jupyter Notebooks 和 Spyder 中使用它时,我得到的形状输出为 (45211, 1)。当我打印我的数据框时,此时的数据如下所示:

<bound method NDFrame.head of       age;"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y"
0      58;"management";"married";"tertiary";"no";2143...

我可以通过使用得到正确的形状

 df = pd.read_csv('bank-full.csv', sep = '[;]')
print(df.shape)

或者

 df = pd.read_csv('bank-full.csv', sep = '\;')
print(df.shape)

但是,当我这样做时,数据似乎被拉入,好像每一行都是一个字符串。第一列和最后一列分别添加了前面和结尾的双引号,当我尝试剥离它们时,没有任何方法可以删除它们,所以无论哪种方式,我都被许多称为对象的列所困扰,并且无法在需要时将它们强制转换为整数。我的数据是这样的:

"age           ""job""   ""marital""  ""education"" ""default""  \

0″58″”管理”””已婚”””三级”””没有””

最后一列:

      ""y"""  

0 “”没有”””

我已经联系了班上的同学,让他们向我发送他们的 .csv 文件,从头开始重新启动,尝试不同的 UI,甚至复制/粘贴他们的代码行来读取和调整数据,但一无所获。除了在这里问这个之外,我已经使用了所有资源并且没有想法。

原文链接:https://stackoverflow.com//questions/71962865/sep-not-shaping-dataframe-in-python

回复

我来回复
  • Chowlett2的头像
    Chowlett2 评论

    CSV 通常由逗号分隔,但有时单元格由不同的字符分隔。因此,由于我无权访问您的确切数据集,因此我会给您提供总体上对您有帮助的建议。

    首先,查看 CSV 并评估分隔每个值的字符,然后在调用 pd.read_csv() 期间将其用作“sep”中的值。

    然后,无论您想要转换为数字的列,您都可以使用 pd.to_numeric() 来转换数据类型。如果列中的任何值无法转换为数字,这可能会出现问题,然后您需要进行额外的数据清理。

    下面是如何对我称为“col”的特定列执行此操作的示例:

    import pandas as pd
    
    df = pd.read_csv('bank-full.csv', sep = '[;]')
    df[col] = pd.to_numeric(df[col])
    

    如果您还有其他问题,请告诉我,或者更好的是,如果您无法让这些数据为您工作,请与我分享数据。

    2年前 0条评论