【问题标题】:Loading data from csv to pandas dataframe gives NaNs将数据从 csv 加载到 pandas 数据框会给出 NaN
【发布时间】:2021-04-14 14:07:28
【问题描述】:

我正在使用以下代码将 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 获取到我的数据框中,我的代码有什么问题?

【问题讨论】:

  • df1 已经是数据框。您可能首先需要弄清楚 csv 的分隔符。
  • @Ynjxsjmh,我试图让我的数据像第二个截图一样。这样当我引用 df1['ResponseID'] 时,我会得到 ResponseID 中的所有数据等等。
  • df1=pd.read_csv(z.open(file),sep='\t',skiprows=[1,2]) 的结果中,您的分隔符似乎是, 而不是\t

标签: python-3.x pandas dataframe csv


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多