首页 > 解决方案 > 将数据从 csv 加载到 pandas 数据框会给出 NaN

问题描述

我正在使用以下代码将 csv 文件读入 pandas,但是当我将其移动到数据框中时,我只会得到 Nans。我需要将其放入数据框以将其加载到 SQL Server 中。我正在使用以下代码将数据加载到 csv 文件中:

for file in z.namelist():
    df1=pd.read_csv(z.open(file),sep='\t',skiprows=[1,2])
print(df1)

这给了我预期的结果: 在此处输入图像描述 但是当我尝试将数据放入数据框中时,我得到的只是 NaN。这是我在上述步骤之后用于将数据加载到数据框中的代码。

df1 = pd.DataFrame(df1,columns=['ResponseID','ResponseSet','IPAddress','StartDate','EndDate',
        'RecipientLastName','RecipientFirstName','RecipientEmail','ExternalDataReference','Finished',
        'Status','EmbeddedData','License Type','Organization','Reference ID','Q16','Q3#1_1_1_TEXT',
        'Q3#1_1_2_TEXT','Q3#1_1_3_TEXT','Q3#1_2_1_TEXT','Q3#1_2_3_TEXT','Q3#1_3_1_TEXT','Q3#1_3_2_TEXT',
        'Q3#1_3_3_TEXT','Q3#1_4_1_TEXT','Q3#1_4_2_TEXT','Q3#1_4_3_TEXT','Q3#1_5_1_TEXT','Q3#1_5_2_TEXT',
        'Q3#1_5_3_TEXT','Q3#1_6_1_TEXT','Q3#1_6_2_TEXT','Q3#1_6_3_TEXT','Q4#1_5_1_TEXT','Q18','Q19#1_1_1_TEXT',
        'Q19#1_2_1_TEXT','Q19#1_3_1_TEXT','Q19#1_4_1_TEXT','Q19#1_6_1_TEXT','Q14#1_4_1_TEXT','Q14#1_5_1_TEXT',
        'Q14#1_8_1_TEXT','Q20','Q29','Q21','Q22','Q23','Q24','LocationLatitude','LocationLongitude','LocationAccuracy'])
    
print(df1)

为此,我只使用 NaN。 在此处输入图像描述

我应该怎么做才能将数据从 csv 获取到我的数据框中,我的代码有什么问题?

标签: python-3.xpandasdataframecsv

解决方案


我能够通过使用“,”作为我的 read_csv 的分隔符来解决这个问题。

df1=pd.read_csv(z.open(file),sep=',',skiprows=[1,2])

我通过使用以下方法摆脱了 NaN:

df1 = df1.replace({np.nan: None})

推荐阅读