熊猫.切片后的数据帧为空



为什么切片后我得到了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文件本身获取日期。为什么我的日期框是空的?

我认为您应该尝试像这样对数据帧进行切片:

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)

我认为你应该使用这种方法,因为否则在第一个循环之后,你的数据框将被第一个日期覆盖,然后在第二个循环中,你的数字框将不再包含其他日期。

如果这有帮助,请告诉我!

感谢@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]

最新更新