使用python检查CSV格式

时间:2019-02-27 11:10:37

标签: python pandas csv

我目前正在处理一个脚本,以检查一堆CSV是否具有足够的格式以供其他CSV处理。我对它必须通过的某些断言感到困惑。一种是不遗漏,为此我尝试过:

df = pd.read_csv("C:PATH\\test.csv", sep= ',')

def check(self, file):
try:
    assert df.notna().values.any()  
except AssertionError:
    assert False, "  NaN in data"

它什么都不做。我在带有NaN的CSV上尝试过,但没有引发错误。然后,我也希望它用逗号分隔,但它们可能会给我传递一个点和逗号分隔的点。这是我的尝试:

try:
    assert len(df.columns) != 1 
except AssertionError:      
    "Not comma separated"

它的响应不佳,有时会升旗,有时却没有。

是否有我不理解的“断言”中的内容?还是其他问题?

2 个答案:

答案 0 :(得分:2)

将df作为参数传递给check()。 并将.any()更改为.all()

df= pd.read_csv("C:\\PATH\\test.csv", sep= ',')

def check(file):
    try:
        assert file.notna().values.all()  
    except AssertionError:
        assert False, "  NaN in data"

check(df)

答案 1 :(得分:0)

pd.notna() https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.notna.html

要求您提供数据框作为参数

请尝试如下使用notnull():

df= pd.read_csv("C:PATH\\test.csv", sep= ',')

def check(file):
    try:
        assert file.notnull().values.any() 
    except AssertionError:
        assert False, "  NaN in data"

check(df)