检查csv文件是否具有正确的列名python

时间:2018-03-12 11:55:43

标签: python python-3.x pandas csv

我有一个我上传到数据库的csv文件,我喜欢将标题/列与列表进行比较,这样我就可以确保将正确的csv文件插入数据库而无需打开csv文件 所以,如果我有以下Name Surname Age Height,那么必须将其与csv标题进行比较,如果它不正确则显示一些消息。

1 个答案:

答案 0 :(得分:2)

您可以将pd.read_csvnrows=0一起使用。以下是一个例子。

from io import StringIO
import pandas as pd

mystr = StringIO("""col1,col2,col3
val1,val2,val3""")

check_list = ['Name', 'Surname', 'Age', 'Height']
df_cols = pd.read_csv(mystr, nrows=0)

df_cols_list = df_cols.columns.tolist()

assert df_cols_list == check_list, "Columns are misaligned: {0} vs {1}".format(df_cols_list, check_list)

# ---------------------------------------------------------------------------
# AssertionError                            Traceback (most recent call last)
# <ipython-input-32-3638118067e8> in <module>()
#      10 df_cols_list = df_cols.columns.tolist()
#      11 
# ---> 12 assert df_cols_list == check_list, "Columns are misaligned: {0} vs {1}".format(df_cols_list, check_list)

# AssertionError: Columns are misaligned: ['col1', 'col2', 'col3'] vs ['Name', 'Surname', 'Age', 'Height']