Ren*_*ade 1 python csv python-3.x pandas
我有一个要上传到数据库的 csv 文件,我想将标题/列与列表进行比较,以便我可以确保将正确的 csv 文件插入到数据库中,而无需打开 csv 文件,所以如果我有以下内容,Name Surname Age Height
如果它不正确显示一些消息,则必须将其与 csv 标题进行比较。
您可以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']
Run Code Online (Sandbox Code Playgroud)