首页 > 解决方案 > heroku 上的空数据框但不是本地的

问题描述

我正在将 csv 读取到数据帧,然后用 iterrows 循环遍历它。这在本地有效,但不适用于heroku:

    print('Location')
    cities_df = pd.read_csv(os.path.join(base_dir, 'cities.csv'), sep='\t', lineterminator='\r')

    print(cities_df)
    for i, city_row in cities_df.iterrows():
        print(city_row)

heroku 上的输出很奇怪,df 'prints' 但它说它是空的,我不能像在本地一样遍历它:

Location
Empty DataFrame
Columns: [Census, Change, 2016 land area, 2016 population density, Location
1, New York[d],  New York, 8,336,817, 8,175,133, +1.98%, 301.5 sq mi, 780.9 km2, 28,317/sq mi, 10,933/km2, 40.6635°N 73.9387°W
2, Los Angeles,  California, 3,979,576, 3,792,621, +4.93%, 468.7 sq mi, 1,213.9 km2, 8,484/sq mi, 3,276/km2, 34.0194°N 118.4108°W
3, Chicago,  Illinois, 2,693,976, 2,695,598, −0.06%, 227.3 sq mi, 588.7 km2, 11,900/sq mi, 4,600/km2, 41.8376°N 87.6818°W
4, Houston[3],  Texas, 2,320,268, 2,100,263, +10.48%, 637.5 sq mi, 1,651.1 km2, 3,613/sq mi, 1,395/km2, 29.7866°N 95.3909°W
5, Phoenix,  Arizona, 1,680,992, 1,445,632, +16.28%, 517.6 sq mi, 1,340.6 km2, 3,120/sq mi, 1,200/km2, 33.5722°N 112.0901°W
6, Philadelphia[e],  Pennsylvania, 1,584,064, 1,526,006, +3.80%, 134.2 sq mi, 347.6 km2, 11,683/sq mi, 4,511/km2, 40.0094°N 75.1333°W
7, San Antonio,  Texas.1, 1,547,253, 1,327,407, +16.56%, 461.0 sq mi, 1,194.0 km2, 3,238/sq mi, 1,250/km2, 29.4724°N 98.5251°W
8, San Diego,  California.1, 1,423,851, 1,307,402, +8.91%, 325.2 sq mi, 842.3 km2, 4,325/sq mi, 1,670/km2, 32.8153°N 117.1350°W
9, Dallas,  Texas.2, 1,343,573, 1,197,816, +12.17%, 340.9 sq mi, 882.9 km2, 3,866/sq mi, 1,493/km2, 32.7933°N 96.7665°W
10, San Jose,  California.2, 1,021,795, 945,942, +8.02%, ...]
Index: []

[0 rows x 3165 columns]

Heroku pandas 版本是 1.1.2,本地版本是 1.0.2 在那之间有没有发生过 read_csv() 的事情?

标签: pythonpandasheroku

解决方案


发现这是因为 linux (heroku) 上的行终止符不同

将 CSV 文件读取到 pandas 可以在 Windows 中工作,而不是在 ubuntu 中


推荐阅读