我有一个我上传到数据库的csv文件,我喜欢将标题/列与列表进行比较,这样我就可以确保将正确的csv文件插入数据库而无需打开csv文件
所以,如果我有以下Name Surname Age Height
,那么必须将其与csv标题进行比较,如果它不正确则显示一些消息。
答案 0 :(得分:2)
您可以将pd.read_csv
与nrows=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']