Pandas. Пустой кадр данных после фрагмента - PullRequest
0 голосов
/ 20 марта 2020

Почему после среза я получил Empty DataFrame?

archive = self.get_rate_archive(settings.CURRENCIES_RATE_SOURCE)
rate_source = archive.open(options["rate_filename"])
rate_df = pd.read_csv(rate_source)
print(rate_df)

            Date     USD     JPY     BGN      CYP     CZK     DKK      EEK      GBP     HUF  ...      INR      KRW      MXN     MYR     NZD     PHP     SGD     THB      ZAR  Unnamed: 42
0     2020-03-20  1.0707  118.37  1.9558      NaN  27.191  7.4691      NaN  0.91028  350.91  ...  80.4650  1335.64  25.6864  4.7052  1.8521  54.895  1.5515  34.851  18.5127          NaN
1     2020-03-19  1.0801  118.63  1.9558      NaN  27.606  7.4731      NaN  0.92985  356.06  ...  81.1400  1364.14  26.2955  4.7686  1.8903  55.593  1.5643  35.076  18.6800          NaN
2     2020-03-18  1.0934  117.78  1.9558      NaN  27.154  7.4732      NaN  0.92190  351.38  ...  81.1355  1377.80  26.2014  4.7793  1.8727  56.441  1.5760  35.448  18.5624          NaN
3     2020-03-17  1.0982  117.50  1.9558      NaN  26.985  7.4732      NaN  0.90823  347.04  ...  81.5670  1365.21  25.0491  4.7777  1.8420  56.563  1.5691  35.461  18.2288          NaN
4     2020-03-16  1.1157  117.76  1.9558      NaN  26.960  7.4731      NaN  0.90918  344.97  ...  82.8075  1373.34  25.4478  4.8092  1.8499  57.625  1.5868  35.937  18.5602          NaN
...          ...     ...     ...     ...      ...     ...     ...      ...      ...     ...  ...      ...      ...      ...     ...     ...     ...     ...     ...      ...          ...
5427  1999-01-08  1.1659  130.09     NaN  0.58187  34.938  7.4433  15.6466  0.70940  250.15  ...      NaN  1366.73      NaN     NaN  2.1557     NaN  1.9537     NaN   6.7855          NaN
5428  1999-01-07  1.1632  129.43     NaN  0.58187  34.886  7.4431  15.6466  0.70585  250.09  ...      NaN  1337.16      NaN     NaN  2.1531     NaN  1.9436     NaN   6.8283          NaN
5429  1999-01-06  1.1743  131.42     NaN  0.58200  34.850  7.4452  15.6466  0.70760  250.67  ...      NaN  1359.54      NaN     NaN  2.1890     NaN  1.9699     NaN   6.7307          NaN
5430  1999-01-05  1.1790  130.96     NaN  0.58230  34.917  7.4495  15.6466  0.71220  250.80  ...      NaN  1373.01      NaN     NaN  2.2011     NaN  1.9655     NaN   6.7975          NaN
5431  1999-01-04  1.1789  133.73     NaN  0.58231  35.107  7.4501  15.6466  0.71110  251.48  ...      NaN  1398.59      NaN     NaN  2.2229     NaN  1.9554     NaN   6.9358          NaN

[5432 rows x 43 columns]


dates = rate_df["Date"].tolist()
for date in dates:
    rate_df = rate_df.loc[rate_df.Date == date]
    print(rate_df)
...
Empty DataFrame
Columns: [Date, USD, JPY, BGN, CYP, CZK, DKK, EEK, GBP, HUF, LTL, LVL, MTL, PLN, ROL, RON, SEK, SIT, SKK, CHF, ISK, NOK, HRK, RUB, TRL, TRY, AUD, BRL, CAD, CNY, HKD, IDR, ILS, INR, KRW, MXN, MYR, NZD, PHP, SGD, THB, ZAR, Unnamed: 42]
Index: []
...

Я получаю дату из самого файла csv. Почему я получаю пустую дату?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Я полагаю, что вы должны попытаться нарезать свой фрейм данных следующим образом:

dates = rate_df["Date"].tolist()
for date in dates:
    rate_byDate = rate_df.copy()
    rate_byDate = rate_df[rate_df.Date == date]
    print(rate_byDate)

Я полагаю, вам следует использовать этот подход, потому что в противном случае после первого l oop ваш фрейм данных будет перезаписан с помощью первое, а затем второе l oop ваш фрейм данных больше не будет содержать другие даты.

Пожалуйста, дайте мне знать, если это поможет!

0 голосов
/ 20 марта 2020

Спасибо @EnriqueBet за подсказку.

Работает:

archive = self.get_rate_archive(settings.CURRENCIES_RATE_SOURCE)
rate_source = archive.open(options["rate_filename"])
rate_df = pd.read_csv(rate_source)
dates = rate_df["Date"].tolist()
for date_from_list in dates:
    df = rate_df.copy()
    df = rate_df[df.Date == date_from_list]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...