写入时不显示所有列

2024-09-12 10:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试导出如下所示的数据集:

+----------------+--------------+--------------+--------------+
| Province_State |   Admin2     |  03/28/2020  |  03/29/2020  |
+----------------+--------------+--------------+--------------+
| South Dakota   | Aurora       |      1       |      2       |
| South Dakota   | Beedle       |      1       |      3       |
+----------------+--------------+--------------+--------------+

但是,我得到的实际CSV文件如下所示:

+-----------------+--------------+--------------+
| Province_State  |  03/28/2020  |  03/29/2020  |
+-----------------+--------------+--------------+
| South Dakota    |      1       |      2       |
| South Dakota    |      1       |      3       |
+-----------------+--------------+--------------+

使用以下代码(通过运行createCSV()可运行,从新冠病毒政府GitHub获取数据):

import csv#csv reader
import pandas as pd#csv parser
import collections#not needed
import requests#retrieves URL fom gov data


def getFile():
    url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-    19/master/csse_covid_19_data/csse_covid_19_time_series    /time_series_covid19_deaths_US.csv'
response = requests.get(url)
print('Writing file...')
open('us_deaths.csv','wb').write(response.content)
#takes raw data from link. creates CSV for each unique state and removes     unneeded headings    
def createCSV():

    getFile()
    #init data
    data=pd.read_csv('us_deaths.csv', delimiter = ',')
    #drop extra columns
    data.drop(['UID'],axis=1,inplace=True)
    data.drop(['iso2'],axis=1,inplace=True)
    data.drop(['iso3'],axis=1,inplace=True)
    data.drop(['code3'],axis=1,inplace=True)
    data.drop(['FIPS'],axis=1,inplace=True)
    #data.drop(['Admin2'],axis=1,inplace=True)
    data.drop(['Country_Region'],axis=1,inplace=True)
    data.drop(['Lat'],axis=1,inplace=True)
    data.drop(['Long_'],axis=1,inplace=True)
    data.drop(['Combined_Key'],axis=1,inplace=True)
    #data.drop(['Province_State'],axis=1,inplace=True)
    data.to_csv('DEBUGDATA2.csv')


#sets province_state as primary key. Searches based on date and key to create new CSVS in root directory of python app
data = data.set_index('Province_State')
data = data.iloc[:,2:].rename(columns=pd.to_datetime, errors='ignore')
for name, g in data.groupby(level='Province_State'):
    g[pd.date_range('03/23/2020', '03/29/20')] \
        .to_csv('{0}_confirmed_deaths.csv'.format(name))

循环的原因是将日期列(前两列之后的所有内容)设置为日期,以便我只能选择2020年3月23日及以后的日期。如果有人有更好的方法,我很想知道

为了确保它能正常工作,它会打印出所有字段名,包括Admin2(县名)、省/州和其他日期

然而,正如您所看到的,在我的CSV中,Admin2似乎已经消失了。我不知道如何使这项工作,如果有人有任何想法,这将是伟大的


Tags: csvtoimporttruedatadroppdstate
2条回答

尝试以下操作以全局设置打印选项:

pd.set_option('display.max_columns')

改变

data = data.set_index('Province_State')

data = data.set_index((['Province_State','Admin2']))

需要创建一个多键以允许Admin2列显示。欢迎重新打开日期范围部分中的任何更流畅的提示

谢谢大家的帮助

相关问题 更多 >