ValueError: No tables found matching pattern '.+' while using pd.read_html() - python

I am using the following code to scrape data from 'Worldometers' web site. The code was working fine until yesterday. But today it is giving Value error.
I want to continue using urllib Request and urlopen functions. Appreciate any inputs on what is the problem here. I can still extract the data using BeautifulSoup, which I would do if there is no solution.
from urllib.request import Request, urlopen
req = Request('https://www.worldometers.info/coronavirus/', headers={'User-Agent': 'Firefox/76.0.1'})
webpage = urlopen(req).read()
tables = pd.read_html(webpage)
ValueError: No tables found matching pattern '.+'

Seems that pandas has a problem to parse the markup (even with html5lib, which is strange). Only solution that worked for me was this "dirty" hack - to turn all tags to uppercase:
import re
from urllib.request import Request, urlopen
req = Request('https://www.worldometers.info/coronavirus/', headers={'User-Agent': 'Firefox/76.0.1'})
webpage = re.sub(r'<.*?>', lambda g: g.group(0).upper(), urlopen(req).read().decode('utf-8') )
tables = pd.read_html(webpage)
print(tables)
Prints:
[ # Country,Other TotalCases NewCases TotalDeaths NewDeaths TotalRecovered ... TotalTests Tests/ 1M pop Population Continent 1 Caseevery X ppl 1 Deathevery X ppl 1 Testevery X ppl
0 NaN North America 1985234 +4,047 120653.0 +479 624697.0 ... NaN NaN NaN North America NaN NaN NaN
1 NaN South America 758107 +619 36746.0 +13 320826.0 ... NaN NaN NaN South America NaN NaN NaN
2 NaN Europe 1979601 +9,702 171874.0 +306 958874.0 ... NaN NaN NaN Europe NaN NaN NaN
3 NaN Asia 1067485 +16,219 29382.0 +262 627546.0 ... NaN NaN NaN Asia NaN NaN NaN
4 NaN Africa 132254 +667 3819.0 +5 55257.0 ... NaN NaN NaN Africa NaN NaN NaN
.. .. ... ... ... ... ... ... ... ... ... ... ... ... ... ...
226 NaN Total: 1067485 +16,219 29382.0 +262 627546.0 ... NaN NaN NaN Asia NaN NaN NaN
227 NaN Total: 132254 +667 3819.0 +5 55257.0 ... NaN NaN NaN Africa NaN NaN NaN
228 NaN Total: 8782 +23 125.0 NaN 8164.0 ... NaN NaN NaN Australia/Oceania NaN NaN NaN
229 NaN Total: 721 NaN 15.0 NaN 651.0 ... NaN NaN NaN NaN NaN NaN NaN
230 NaN Total: 5932184 +31,277 362614.0 +1,065 2596015.0 ... NaN NaN NaN All NaN NaN NaN
[231 rows x 19 columns], # Country,Other TotalCases NewCases TotalDeaths NewDeaths TotalRecovered ... TotalTests Tests/ 1M pop Population Continent 1 Caseevery X ppl 1 Deathevery X ppl 1 Testevery X ppl
0 NaN Asia 1051266 +25,111 29120.0 +439 621744.0 ... NaN NaN NaN Asia NaN NaN NaN
1 NaN North America 1981187 +28,561 120174.0 +1,828 622301.0 ... NaN NaN NaN North America NaN NaN NaN
2 NaN South America 757488 +37,855 36733.0 +1,303 320777.0 ... NaN NaN NaN South America NaN NaN NaN
3 NaN Europe 1969899 +19,816 171568.0 +937 948496.0 ... NaN NaN NaN Europe NaN NaN NaN
4 NaN Africa 131587 +4,949 3814.0 +104 55126.0 ... NaN NaN NaN Africa NaN NaN NaN
.. .. ... ... ... ... ... ... ... ... ... ... ... ... ... ...
226 NaN Total: 1969899 +19,816 171568.0 +937 948496.0 ... NaN NaN NaN Europe NaN NaN NaN
227 NaN Total: 131587 +4,949 3814.0 +104 55126.0 ... NaN NaN NaN Africa NaN NaN NaN
228 NaN Total: 8759 +12 125.0 +1 8155.0 ... NaN NaN NaN Australia/Oceania NaN NaN NaN
229 NaN Total: 721 NaN 15.0 NaN 651.0 ... NaN NaN NaN NaN NaN NaN NaN
230 NaN Total: 5900907 +116,304 361549.0 +5,677 2577250.0 ... NaN NaN NaN All NaN NaN NaN
[231 rows x 19 columns], # Country,Other TotalCases NewCases TotalDeaths NewDeaths TotalRecovered ... TotalTests Tests/ 1M pop Population Continent 1 Caseevery X ppl 1 Deathevery X ppl 1 Testevery X ppl
0 NaN Asia 1026155 +23,237 28681.0 +466 604064.0 ... NaN NaN NaN Asia NaN NaN NaN
1 NaN North America 1952626 +26,248 118346.0 +2,183 610327.0 ... NaN NaN NaN North America NaN NaN NaN
2 NaN South America 719633 +35,891 35430.0 +1,506 287501.0 ... NaN NaN NaN South America NaN NaN NaN
3 NaN Europe 1950083 +16,002 170631.0 +1,030 931561.0 ... NaN NaN NaN Europe NaN NaN NaN
4 NaN Africa 126638 +5,091 3710.0 +97 52623.0 ... NaN NaN NaN Africa NaN NaN NaN
.. .. ... ... ... ... ... ... ... ... ... ... ... ... ... ...
226 NaN Total: 1950083 +16,002 170631.0 +1,030 931561.0 ... NaN NaN NaN Europe NaN NaN NaN
227 NaN Total: 126638 +5,091 3710.0 +97 52623.0 ... NaN NaN NaN Africa NaN NaN NaN
228 NaN Total: 8747 +6 124.0 +1 8129.0 ... NaN NaN NaN Australia/Oceania NaN NaN NaN
229 NaN Total: 721 NaN 15.0 NaN 651.0 ... NaN NaN NaN NaN NaN NaN NaN
230 NaN Total: 5784603 +106,475 356937.0 +10,960 2494856.0 ... NaN NaN NaN All NaN NaN NaN
[231 rows x 19 columns]]

Related

How to filter column based on another column date range

I currently have a dataframe where 1st column is dates (1990 - 2020) and the subsequent columns are 'stocks' that are trading and are NaN if they are not yet being traded. Is there any way to filter the columns based on date range? For example, if 2 years is selected, all stocks that are not null in all columns from 2019-2020 (2 years) will be filtered in.
import pandas as pd
df = pd.read_csv("prices.csv")
df.head()
display(df)
date s_0000 s_0001 s_0002 s_0003 s_0004 s_0005 s_0006 s_0007 s_0008 ... s_2579 s_2580 s_2581 s_2582 s_2583 s_2584 s_2585 s_2586 s_2587 s_2588
0 1990-01-02 NaN 13.389421 NaN NaN NaN NaN NaN 0.266812 NaN ... NaN 1.950358 NaN 7.253997 NaN NaN NaN NaN NaN NaN
1 1990-01-03 NaN 13.588601 NaN NaN NaN NaN NaN 0.268603 NaN ... NaN 1.985185 NaN 7.253997 NaN NaN NaN NaN NaN NaN
2 1990-01-04 NaN 13.610730 NaN NaN NaN NaN NaN 0.269499 NaN ... NaN 1.985185 NaN 7.188052 NaN NaN NaN NaN NaN NaN
3 1990-01-05 NaN 13.477942 NaN NaN NaN NaN NaN 0.270394 NaN ... NaN 1.985185 NaN 7.188052 NaN NaN NaN NaN NaN NaN
4 1990-01-08 NaN 13.477942 NaN NaN NaN NaN NaN 0.272185 NaN ... NaN 1.985185 NaN 7.385889 NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
7806 2020-12-23 116.631310 22.171579 15.890000 16.577030 9.00 65.023491 157.495850 130.347580 27.481012 ... 19.870001 42.675430 2.90 8.850000 9.93 NaN 0.226 207.470001 158.974014 36.650002
7807 2020-12-24 116.641243 21.912146 15.660000 16.606722 8.77 65.292725 158.870193 131.352829 27.813406 ... 20.180000 42.508686 2.88 8.810000 9.91 NaN 0.229 205.270004 159.839264 36.009998
7808 2020-12-28 117.158287 22.191536 16.059999 16.200956 8.93 66.429459 157.011383 136.050766 28.272888 ... 19.959999 42.528305 2.69 8.760000 9.73 NaN 0.251 199.369995 161.500122 36.709999
7809 2020-12-29 116.561714 21.991972 15.860000 16.745275 8.80 66.529175 154.925140 134.239273 27.705866 ... 19.530001 41.949623 2.59 8.430000 9.61 NaN 0.243 197.839996 162.226105 36.610001
7810 2020-12-30 116.720795 22.899990 16.150000 17.932884 8.60 66.299828 155.884232 133.094650 27.725418 ... 19.870001 42.390987 2.65 8.540000 9.72 NaN 0.230 201.309998 163.369812 36.619999
so I want to do something like:
year = input(Enter number of years:)
year = 3
If year is 3, the daterange selected would be 3 years to 2020 (2018-2020)
You could try the following code:
df[(df['date'] >= '2019-01-01') & (df['date'] <= '2020-12-30')]
Once you filter, you could remove all rows, which include NaN:
df.dropna()

'ValueError: Cannot index with multidimensional key' when trying to filter data

I'm having trouble selecting certain rows in my dataset.
Given this data:
ticker date Unnamed: 0 filing_date currency_symbol totalassets intangibleassets earningassets othercurrentassets totalliab totalstockholderequity deferredlongtermliab othercurrentliab commonstock retainedearnings otherliab goodwill otherassets cash totalcurrentliabilities shorttermdebt shortlongtermdebt shortlongtermdebttotal otherstockholderequity propertyplantequipment totalcurrentassets longterminvestments nettangibleassets shortterminvestments netreceivables longtermdebt inventory accountspayable totalpermanentequity noncontrollinginterestinconsolidatedentity temporaryequityredeemablenoncontrollinginterests accumulatedothercomprehensiveincome additionalpaidincapital commonstocktotalequity preferredstocktotalequity ... changereceivables cashflowsotheroperating exchangeratechanges cashandcashequivalentschanges changeinworkingcapital othernoncashitems freecashflow ticker Unnamed: 0 code type name exchange currencycode currencyname currencysymbol countryname countryiso isin cusip cik employeridnumber fiscalyearend ipodate internationaldomestic sector industry gicsector gicgroup gicindustry gicsubindustry homecategory isdelisted description address phone weburl logourl fulltimeemployees updatedat
0 0G3T.LSE 2017-12-31 61956.0 NaN SEK NaN NaN NaN 92744000.0 NaN NaN NaN 185417000.0 1192000.0 NaN NaN NaN 2.240000e+05 NaN 2.489530e+08 NaN NaN NaN 12620000.0 6.670000e+06 2.669680e+08 NaN 2.490900e+07 NaN 5.795400e+07 NaN NaN 13767000.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN IVECF.US 0.0 IVECF Common Stock IVECF PINK USD US Dollar $ USA US NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN False NaN NaN NaN NaN NaN NaN 2020-07-18
1 0G3T.LSE 2018-12-31 61942.0 NaN SEK NaN NaN NaN NaN NaN NaN NaN 123360000.0 1194000.0 7.619100e+07 -1.000000e+03 NaN 1.110000e+05 NaN 2.260690e+08 NaN NaN NaN NaN 7.036500e+07 2.900550e+08 NaN 8.068200e+07 NaN 9.035700e+07 NaN NaN 14154000.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NSS.US 1.0 NSS Common Stock NuStar Logistics L.P. SB NT FX/FL 43 NYSE USD US Dollar $ USA US US67059T2042 67059T204 1110805.0 NaN December 2013-01-29 NaN Other Other NaN NaN NaN NaN ETD False NuStar Logistics, L.P. engages in the terminal... NaN NaN NaN NaN 0.0 2021-10-20
2 0G3T.LSE 2019-12-31 106133.0 NaN SEK NaN NaN NaN 1000.0 NaN NaN NaN 170171000.0 1196000.0 1.899310e+08 NaN NaN 5.550000e+05 NaN 2.495870e+08 NaN NaN NaN NaN 6.359900e+07 4.140860e+08 NaN 1.831080e+08 NaN 1.422700e+08 NaN NaN 19381000.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN CMLLF.US 2.0 CMLLF Common Stock China Maple Leaf Educational Systems Limited OTCGREY USD US Dollar $ USA US NaN NaN NaN NaN August NaN NaN NaN NaN NaN NaN NaN NaN NaN False China Maple Leaf Educational Systems Limited, ... Maple Leaf Educational Park, Dalian, China, 11... 86 40 0655 6877 http://www.mapleleaf.cn NaN 6623.0 2021-10-20
3 0G3T.LSE 2020-12-31 106132.0 NaN SEK NaN NaN NaN NaN NaN NaN NaN 220934000.0 1203000.0 3.654220e+08 NaN NaN 7.730000e+05 NaN 3.060350e+08 NaN NaN NaN NaN 2.051090e+08 6.041580e+08 NaN 3.478740e+08 NaN 1.826840e+08 NaN NaN 16940000.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN ZZZ.TO 3.0 ZZZ Common Stock Sleep Country Canada Holdings Inc TO CAD Canadian Dollar C$ Canada CA CA83125J1049 NaN NaN NaN December NaN NaN Consumer Cyclical Specialty Retail NaN NaN NaN NaN NaN NaN Sleep Country Canada Holdings Inc., together w... 7920 Airport Road, Brampton, ON, Canada, L6T 4N8 289 748 0206 http://www.sleepcountry.ca /img/logos/TO/ZZZ.png 1434.0 2021-03-17
4 0GO4.LSE 2017-12-31 106131.0 NaN SEK NaN NaN NaN 1000000.0 NaN NaN NaN 947000000.0 390000000.0 -4.876000e+09 2.786000e+09 NaN 1.277000e+09 NaN 4.514000e+09 NaN NaN NaN 284000000.0 2.557000e+09 7.432000e+09 NaN -6.290000e+09 NaN 1.977000e+09 NaN 1.375000e+09 353000000.0 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN YRI.TO 4.0 YRI Common Stock Yamana Gold Inc TO CAD Canadian Dollar C$ Canada CA CA98462Y1007 NaN NaN NaN December NaN NaN Basic Materials Gold NaN NaN NaN NaN NaN NaN Yamana Gold Inc. operates as a precious metal ... Royal Bank Plaza, Toronto, ON, Canada, M5J 2J3 416-815-0220 http://www.yamana.com /img/logos/TO/YRI.png 0.0 2021-03-17
5 rows × 161 columns
When I try to select a specific ticker I get the following error:
df.loc[df['ticker'] == 'AAPL.US']
I get this error:
1 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in __getitem__(self, key)
877
878 maybe_callable = com.apply_if_callable(key, self.obj)
--> 879 return self._getitem_axis(maybe_callable, axis=axis)
880
881 def _is_scalar_access(self, key: Tuple):
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _getitem_axis(self, key, axis)
1095
1096 if hasattr(key, "ndim") and key.ndim > 1:
-> 1097 raise ValueError("Cannot index with multidimensional key")
1098
1099 return self._getitem_iterable(key, axis=axis)
ValueError: Cannot index with multidimensional key
df.loc requires a key and fieldname combination. add a filter to the dataframe for the criteria you want
df2=df.query("ticker=='AAPL.US'")
for key, row in df2.iterrows():
df.loc[key,'mycol']='abc'

Pandas - Create Separate Columns in DataFrame Based on a Specific Column's Values

Let's say I have a simple Pandas DataFrame where one column contains a country name and another column contains some value. For example:
# Import Python Libraries
import numpy as np
import pandas as pd
# Create Sample DataFrame
df = pd.DataFrame(data={'Country': ['United States','United States','United States','United States', \
'United States','United States','United States','United States', \
'United States','United States','United States','United States', \
'Canada','Canada','Canada','Canada','Canada','Canada','Mexico', \
'Mexico','Mexico','Mexico','England','England','England','England', \
'England','England','England','England','England','England','England', \
'England','England','England','France','France','France','Spain','Germany', \
'Germany','Germany','Germany','Germany','Germany','Germany','Germany', \
'Germany','Germany'], 'Value': np.random.randint(1000, size=50)})
Which generates:
print(df.head())
Index Country Value
0 United States 943
1 United States 567
2 United States 534
3 United States 700
4 United States 470
My question is, what is the easiest way in Python to convert this DataFrame into one where each country has its own column and all the values of that country are listed in that column? In other words, how can I easily create a DataFrame where the number of columns is the unique count of countries in the 'Country' column, and that each column's length will vary depending on the number of times the corresponding country appears in the original DataFrame?
Here is sample code that provides a solution:
# Store Unique Country Names in Variable
columns = df['Country'].unique()
# Create Individual Country DataFrames
df_0 = df[df['Country'] == columns[0]]['Value'].values.tolist()
df_1 = df[df['Country'] == columns[1]]['Value'].values.tolist()
df_2 = df[df['Country'] == columns[2]]['Value'].values.tolist()
df_3 = df[df['Country'] == columns[3]]['Value'].values.tolist()
df_4 = df[df['Country'] == columns[4]]['Value'].values.tolist()
df_5 = df[df['Country'] == columns[5]]['Value'].values.tolist()
df_6 = df[df['Country'] == columns[6]]['Value'].values.tolist()
# Create Desired Output DataFrame
data_dict = {columns[0]: df_0, columns[1]: df_1, columns[2]: df_2, columns[3]: df_3, columns[4]: df_4, columns[5]: df_5, columns[6]: df_6}
new_df = pd.DataFrame({k:pd.Series(v[:len(df)]) for k,v in data_dict.items()})
Which generates:
print(new_df)
United States Canada Mexico England France Spain Germany
0 838.0 135.0 496.0 568.0 71.0 588.0 811.0
1 57.0 118.0 268.0 716.0 422.0 NaN 107.0
2 953.0 396.0 850.0 860.0 707.0 NaN 318.0
3 251.0 294.0 815.0 888.0 NaN NaN 633.0
4 127.0 466.0 NaN 869.0 NaN NaN 910.0
5 892.0 824.0 NaN 776.0 NaN NaN 472.0
6 11.0 NaN NaN 508.0 NaN NaN 466.0
7 563.0 NaN NaN 299.0 NaN NaN 200.0
8 864.0 NaN NaN 568.0 NaN NaN 637.0
9 810.0 NaN NaN 78.0 NaN NaN 392.0
10 268.0 NaN NaN 106.0 NaN NaN NaN
11 389.0 NaN NaN 153.0 NaN NaN NaN
12 NaN NaN NaN 217.0 NaN NaN NaN
13 NaN NaN NaN 941.0 NaN NaN NaN
While the above code works, it's obviously not a tenable solution for larger data sets. What is the most efficient way of generating this result from the original DataFrame?
Thank you!
Probably not the most performant solution out there, but it will get everything top justified.
df1 = df.groupby('Country').Value.agg(list).apply(pd.Series).T
df1.columns.name=None
Output: df1
Canada England France Germany Mexico Spain United States
0 653.0 187.0 396.0 491.0 251.0 433.0 919.0
1 215.0 301.0 25.0 107.0 755.0 NaN 435.0
2 709.0 581.0 858.0 691.0 158.0 NaN 166.0
3 626.0 706.0 NaN 572.0 767.0 NaN 352.0
4 516.0 999.0 NaN 393.0 NaN NaN 906.0
5 847.0 688.0 NaN 780.0 NaN NaN 489.0
6 NaN 722.0 NaN 19.0 NaN NaN 322.0
7 NaN 728.0 NaN 166.0 NaN NaN 753.0
8 NaN 765.0 NaN 299.0 NaN NaN 155.0
9 NaN 956.0 NaN 449.0 NaN NaN 438.0
10 NaN 41.0 NaN NaN NaN NaN 588.0
11 NaN 43.0 NaN NaN NaN NaN 796.0
12 NaN 485.0 NaN NaN NaN NaN NaN
13 NaN 218.0 NaN NaN NaN NaN NaN
The other option is to make use of Coldspeed's justify function and Yuca's pivot output:
import numpy as np
df2 = df.pivot(index=None, columns='Country', values='Value')
df2 = pd.DataFrame(
justify(df2.values, invalid_val=np.NaN, axis=0, side='up'),
columns=df2.columns
).dropna(0, 'all')
df2.columns.name=None
Output: df2
Canada England France Germany Mexico Spain United States
0 653 187 396 491 251 433 919
1 215 301 25 107 755 NaN 435
2 709 581 858 691 158 NaN 166
3 626 706 NaN 572 767 NaN 352
4 516 999 NaN 393 NaN NaN 906
5 847 688 NaN 780 NaN NaN 489
6 NaN 722 NaN 19 NaN NaN 322
7 NaN 728 NaN 166 NaN NaN 753
8 NaN 765 NaN 299 NaN NaN 155
9 NaN 956 NaN 449 NaN NaN 438
10 NaN 41 NaN NaN NaN NaN 588
11 NaN 43 NaN NaN NaN NaN 796
12 NaN 485 NaN NaN NaN NaN NaN
13 NaN 218 NaN NaN NaN NaN NaN
Use groupby, cumcount, and unstack with T:
df.set_index(['Country',df.groupby('Country').cumcount()])['Value'].unstack().T
Output:
Country Canada England France Germany Mexico Spain United States
0 535.0 666.0 545.0 522.0 581.0 525.0 394.0
1 917.0 130.0 76.0 882.0 563.0 NaN 936.0
2 344.0 376.0 960.0 442.0 247.0 NaN 819.0
3 760.0 272.0 NaN 604.0 976.0 NaN 975.0
4 745.0 199.0 NaN 512.0 NaN NaN 123.0
5 654.0 102.0 NaN 114.0 NaN NaN 690.0
6 NaN 570.0 NaN 318.0 NaN NaN 568.0
7 NaN 807.0 NaN 523.0 NaN NaN 385.0
8 NaN 18.0 NaN 890.0 NaN NaN 451.0
9 NaN 26.0 NaN 635.0 NaN NaN 282.0
10 NaN 871.0 NaN NaN NaN NaN 771.0
11 NaN 122.0 NaN NaN NaN NaN 505.0
12 NaN 0.0 NaN NaN NaN NaN NaN
13 NaN 578.0 NaN NaN NaN NaN NaN
pd.pivot takes you halfway there, the issue here is that your index have no information so your non NaN values are not at the top of the df
df.pivot(index=None, columns='Country', values = 'Value')
Country Canada England France ... Mexico Spain United States
0 NaN NaN NaN ... NaN NaN 992.0
1 NaN NaN NaN ... NaN NaN 814.0
2 NaN NaN NaN ... NaN NaN 489.0
3 NaN NaN NaN ... NaN NaN 943.0
4 NaN NaN NaN ... NaN NaN 574.0
5 NaN NaN NaN ... NaN NaN 428.0
6 NaN NaN NaN ... NaN NaN 907.0
7 NaN NaN NaN ... NaN NaN 899.0
8 NaN NaN NaN ... NaN NaN 379.0
9 NaN NaN NaN ... NaN NaN 130.0

Multiplying two dataframes with different dimensions

So I have two dataframes, one of size (462, 38) and the other (36, 34). Theoretically, I should be able to multiply them (the first one without the first two columns, making it (462,36)) and get a matrix of the size (462,34), but I'm receiving an error. This is the script I'm using:
df_technique = df_binary.iloc[:,2:].mul(df_pim.values, axis=0)
df_binary is the dataframe of size (462,38)
df_pim is the dataframe of size (36,34)
I'm getting this error:
ValueError: Unable to coerce to DataFrame, shape must be (462, 36): given (36, 34)
Pretty new to pandas, but a little confused on why this isn't working.
Let's create a little toy example:
In [6]: import numpy as np
In [7]: import pandas as pd
In [8]: df1 = pd.DataFrame(np.random.rand(462,38))
In [9]: df2 = pd.DataFrame(np.random.rand(36,34))
In [10]: df1.iloc[:, 2:].shape
Out[10]: (462, 36)
Let's try .mul:
In [11]: df1.iloc[:, 2:].mul(df2)
Out[11]:
0 1 2 3 4 5 6 7 ... 30 31 32 33 34 35 36 37
0 NaN NaN 0.069152 0.433575 0.237038 0.552856 0.007651 0.305549 ... 0.041911 0.490022 0.093998 0.226641 NaN NaN NaN NaN
1 NaN NaN 0.329819 0.024969 0.305772 0.240036 0.298576 0.076755 ... 0.051576 0.246010 0.164661 0.071771 NaN NaN NaN NaN
2 NaN NaN 0.335649 0.143226 0.086966 0.469313 0.096287 0.323846 ... 0.118156 0.509485 0.019587 0.750393 NaN NaN NaN NaN
3 NaN NaN 0.540942 0.140480 0.201622 0.134188 0.436736 0.318038 ... 0.362616 0.018998 0.553993 0.194979 NaN NaN NaN NaN
4 NaN NaN 0.249867 0.410236 0.036971 0.023470 0.001242 0.023679 ... 0.105056 0.766388 0.356008 0.117736 NaN NaN NaN NaN
5 NaN NaN 0.430849 0.154554 0.048016 0.040484 0.026158 0.923512 ... 0.063798 0.242107 0.088325 0.076771 NaN NaN NaN NaN
6 NaN NaN 0.150360 0.048118 0.089665 0.439097 0.008246 0.000882 ... 0.168322 0.672298 0.144217 0.014767 NaN NaN NaN NaN
7 NaN NaN 0.002987 0.338054 0.242131 0.104348 0.583705 0.008956 ... 0.099933 0.005963 0.209813 0.013677 NaN NaN NaN NaN
8 NaN NaN 0.730034 0.576801 0.702868 0.023938 0.025093 0.359022 ... 0.004573 0.118901 0.181754 0.489394 NaN NaN NaN NaN
9 NaN NaN 0.054859 0.140126 0.526472 0.074119 0.503533 0.138453 ... 0.148497 0.033773 0.199062 0.638204 NaN NaN NaN NaN
10 NaN NaN 0.011797 0.018803 0.279219 0.006031 0.351008 0.808695 ... 0.157058 0.368678 0.391322 0.037119 NaN NaN NaN NaN
11 NaN NaN 0.002085 0.006149 0.440413 0.014603 0.114628 0.052740 ... 0.032606 0.031034 0.627347 0.250106 NaN NaN NaN NaN
12 NaN NaN 0.459560 0.396850 0.323084 0.017022 0.113606 0.114051 ... 0.000245 0.152969 0.007480 0.375953 NaN NaN NaN NaN
13 NaN NaN 0.424696 0.774762 0.742045 0.035061 0.013645 0.344456 ... 0.227203 0.315968 0.272345 0.077855 NaN NaN NaN NaN
14 NaN NaN 0.074256 0.545422 0.107654 0.313041 0.276494 0.347180 ... 0.216622 0.266681 0.044627 0.643293 NaN NaN NaN NaN
15 NaN NaN 0.083460 0.003905 0.680099 0.468907 0.034795 0.298261 ... 0.547690 0.045437 0.059649 0.574525 NaN NaN NaN NaN
16 NaN NaN 0.130475 0.413133 0.046050 0.069645 0.156101 0.117565 ... 0.108358 0.026304 0.381912 0.232132 NaN NaN NaN NaN
17 NaN NaN 0.365677 0.238611 0.185642 0.528028 0.051163 0.739312 ... 0.167501 0.613983 0.138576 0.508531 NaN NaN NaN NaN
18 NaN NaN 0.010499 0.694223 0.064765 0.250918 0.219200 0.405163 ... 0.036581 0.579350 0.029583 0.487232 NaN NaN NaN NaN
19 NaN NaN 0.553498 0.622697 0.059322 0.120012 0.243311 0.351804 ... 0.784040 0.222959 0.637571 0.557461 NaN NaN NaN NaN
20 NaN NaN 0.152201 0.536858 0.126313 0.089983 0.091302 0.248702 ... 0.214070 0.035524 0.345542 0.114386 NaN NaN NaN NaN
21 NaN NaN 0.170115 0.157332 0.108346 0.093566 0.492156 0.052809 ... 0.224359 0.763030 0.837852 0.007604 NaN NaN NaN NaN
22 NaN NaN 0.107562 0.125040 0.075692 0.101576 0.025918 0.197318 ... 0.088839 0.336992 0.290796 0.367974 NaN NaN NaN NaN
23 NaN NaN 0.001356 0.723209 0.078923 0.159972 0.094777 0.198491 ... 0.225621 0.059736 0.782560 0.678412 NaN NaN NaN NaN
24 NaN NaN 0.205520 0.019794 0.075210 0.000622 0.119975 0.116428 ... 0.392006 0.460143 0.238348 0.598957 NaN NaN NaN NaN
25 NaN NaN 0.004261 0.003159 0.003675 0.108487 0.344357 0.218113 ... 0.002379 0.126916 0.522164 0.019517 NaN NaN NaN NaN
26 NaN NaN 0.217224 0.052694 0.508061 0.028095 0.244016 0.057007 ... 0.160138 0.285628 0.447312 0.000999 NaN NaN NaN NaN
27 NaN NaN 0.066310 0.149280 0.772441 0.078405 0.200181 0.392209 ... 0.334078 0.029189 0.129492 0.159437 NaN NaN NaN NaN
28 NaN NaN 0.288818 0.679855 0.418685 0.432491 0.185340 0.754593 ... 0.124270 0.288381 0.033000 0.033425 NaN NaN NaN NaN
29 NaN NaN 0.301348 0.286180 0.048910 0.116658 0.331689 0.272144 ... 0.180669 0.050509 0.156428 0.001210 NaN NaN NaN NaN
.. .. .. ... ... ... ... ... ... ... ... ... ... ... .. .. .. ..
432 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
433 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
434 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
435 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
436 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
437 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
438 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
439 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
440 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
441 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
442 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
443 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
444 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
445 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
446 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
447 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
448 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
449 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
450 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
451 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
452 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
453 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
454 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
455 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
456 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
457 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
458 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
459 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
460 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
461 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN
[462 rows x 38 columns]
This works but there are lots of NaN values. This is because .mul does element-wise multiplication of DataFrames and expects the shapes of the DataFrames to be (A, B) x (A, B).
We can reproduce your error when using df2.values because pandas tries to create a (462, 36) DataFrame out of the (36, 34) df2.values numpy array and fails:
In [13]: df1.iloc[:, 2:].mul(df2.values, axis=0)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-13-e33efa65ac07> in <module>()
----> 1 df1.iloc[:, 2:].mul(df2.values, axis=0)
~/miniconda3/envs/so_question/lib/python3.6/site-packages/pandas/core/ops.py in f(self, other, axis, level, fill_value)
1515 def f(self, other, axis=default_axis, level=None, fill_value=None):
1516
-> 1517 other = _align_method_FRAME(self, other, axis)
1518
1519 if isinstance(other, ABCDataFrame): # Another DataFrame
~/miniconda3/envs/so_question/lib/python3.6/site-packages/pandas/core/ops.py in _align_method_FRAME(left, right, axis)
1438 "must be {req_shape}: given {given_shape}"
1439 .format(req_shape=left.shape,
-> 1440 given_shape=right.shape))
1441
1442 right = left._constructor(right, index=left.index,
ValueError: Unable to coerce to DataFrame, shape must be (462, 36): given (36, 34)
Judging from your description you meant to use .dot which is for matrix multiplication (M, N) x (N, P) = (M, P) instead of .mul:
In [17]: df1.iloc[:, 2:].dot(df2.values)
Out[17]:
0 1 2 3 4 ... 29 30 31 32 33
0 9.971979 6.981089 8.694962 8.276216 8.351839 ... 8.480659 8.414970 8.240727 9.672677 7.565088
1 9.410364 8.590233 8.195569 9.140421 8.921937 ... 8.570695 7.076403 10.040924 8.267829 8.325542
2 11.095329 9.576891 9.809456 10.026001 10.696129 ... 9.234288 8.387796 11.306832 10.665649 8.983012
3 10.195718 8.550438 9.006633 9.628953 9.156615 ... 8.921587 7.133165 10.254906 9.561331 8.968170
4 10.169194 9.450612 8.424815 8.513062 8.537338 ... 8.358502 8.129391 9.731362 9.567829 8.041028
5 8.699785 7.506038 7.247128 8.637461 7.905982 ... 7.635597 6.348187 8.452615 7.902099 7.091182
6 9.231585 7.692058 7.744410 8.488541 8.450400 ... 7.932535 6.753257 8.688555 8.658745 7.056945
7 9.622983 8.674558 6.987342 8.077567 7.955983 ... 8.264570 6.685770 9.142239 9.154905 7.833893
8 11.309864 9.142239 8.419535 8.680210 9.712205 ... 8.717705 7.664762 10.649243 9.459739 8.912268
9 11.334008 8.958880 8.296706 9.420058 9.756113 ... 9.399543 7.366976 10.139639 10.154981 8.350516
10 11.181974 10.031747 9.294010 11.156024 10.066875 ... 9.613627 8.053175 11.583264 10.818940 9.330073
11 9.980280 8.311433 7.501879 8.494200 7.832875 ... 8.457131 7.320341 9.921714 8.975098 8.443220
12 9.740919 8.728053 7.673338 8.007482 9.291362 ... 8.483178 6.957094 9.554731 8.977761 7.974371
13 11.167700 10.239565 11.016358 11.550972 10.918983 ... 9.373120 9.645397 12.572644 11.505732 9.894803
14 10.680348 8.988366 9.009413 8.823574 9.424792 ... 8.959995 8.185815 9.940674 9.927982 8.334847
15 11.830672 10.053389 9.302099 10.251534 9.440460 ... 10.139816 9.478568 10.860152 11.184854 8.287742
16 9.339399 8.916890 7.187363 8.922513 8.426588 ... 7.944471 7.323630 9.814955 8.656069 7.053032
17 11.143226 8.808918 9.178566 8.847451 9.175966 ... 9.158147 7.899361 9.656798 9.994228 8.879669
18 9.889310 8.284430 7.786766 8.221434 8.435520 ... 7.373773 6.921359 8.685328 9.677998 8.130656
19 11.021434 9.315304 7.878728 9.712656 9.381570 ... 8.506453 7.138838 9.409518 10.872490 8.920906
20 8.465932 7.376756 7.873896 8.216718 7.981726 ... 7.606467 6.071998 8.783477 8.713840 6.978514
21 10.044225 8.490197 7.624420 8.063905 8.485409 ... 8.590962 6.953432 10.188383 8.691053 7.867377
22 10.055971 8.596160 8.004438 8.487240 8.243792 ... 8.232528 6.805463 9.322255 10.063531 7.578448
23 11.260788 10.345866 8.547624 9.151512 9.672593 ... 8.784488 8.244342 10.440683 11.396178 9.597543
24 11.289788 9.181376 9.678903 9.205845 10.020440 ... 9.945561 8.558815 10.285292 10.364807 8.624407
25 9.735467 7.731079 7.858442 8.098820 7.329694 ... 8.992903 7.179417 8.045042 8.872422 7.592073
26 8.951750 7.260067 8.087883 8.625076 7.796546 ... 8.368493 6.549368 8.282185 8.082291 7.088356
27 8.493655 7.288378 7.554746 7.793805 7.555760 ... 7.146606 5.828258 7.744346 8.613483 7.455887
28 9.915362 8.161043 9.110862 9.147840 8.513224 ... 8.676128 7.878927 8.752682 10.031502 8.360679
29 11.225115 8.611056 9.385648 9.472114 9.581927 ... 8.964314 8.321400 10.043396 10.177277 8.422191
.. ... ... ... ... ... ... ... ... ... ... ...
432 7.627470 5.734383 6.626045 6.156603 7.429465 ... 6.461749 5.636417 6.518002 6.925516 5.183975
433 11.643077 10.056751 9.313494 10.320367 9.455274 ... 9.992466 8.058518 11.759124 11.398521 9.627579
434 9.011228 8.956598 7.391039 8.274706 8.709996 ... 7.739301 7.270689 8.638466 8.497952 7.203451
435 9.265928 7.693394 8.228558 7.400204 8.619893 ... 7.547710 7.003936 8.839432 9.568429 7.334440
436 9.920282 9.012674 8.142472 9.055654 9.253443 ... 8.413467 6.989122 8.762788 9.328164 7.850035
437 9.944510 7.895858 7.797087 8.212704 8.687516 ... 8.068419 6.169651 8.120617 9.299318 6.777742
438 10.494847 8.672840 9.410736 9.288373 9.146171 ... 9.597911 7.760452 10.141617 10.452433 9.498194
439 9.867494 8.142811 8.214623 8.060762 9.040205 ... 8.427159 7.106905 10.524450 9.292304 8.472231
440 10.130309 8.778968 8.098571 9.036090 9.253507 ... 8.885713 7.310063 10.105144 9.545208 8.807030
441 10.251218 7.729740 7.370521 8.384513 6.958638 ... 8.240842 6.977351 9.267558 9.143776 7.798779
442 8.748951 7.197680 7.028517 7.348912 7.809581 ... 7.896705 6.635679 6.819049 8.045874 6.039097
443 11.703053 9.065089 8.927836 9.542447 9.241294 ... 9.779255 8.794765 10.497803 9.763386 8.408181
444 11.433442 10.707882 10.134235 11.019976 10.722692 ... 9.853438 8.556864 11.099727 11.881496 9.348087
445 8.794981 7.614707 7.855584 8.671275 7.436318 ... 7.282331 6.869884 8.410838 8.980563 7.358201
446 8.735594 7.520451 7.336556 8.235567 7.554697 ... 6.827973 6.302846 8.694671 7.736256 7.746888
447 8.930933 7.674217 7.478743 8.077684 7.300099 ... 7.524244 6.481388 9.119867 8.043605 6.514627
448 9.701053 7.237276 8.207318 8.704792 8.145399 ... 8.176370 7.334896 7.827332 9.504545 8.012765
449 9.932439 8.175081 7.803909 9.206564 9.782949 ... 9.125961 7.279960 8.518182 9.648755 7.742197
450 9.365815 8.567567 7.579989 8.670692 9.055934 ... 7.980583 6.721377 9.921531 9.309550 8.125973
451 9.075117 8.108147 8.607631 8.185085 7.895500 ... 8.036308 6.766023 9.057757 9.009128 7.459431
452 9.059566 8.659570 7.626333 9.360041 8.226206 ... 7.634966 7.739625 8.960765 8.781221 7.528786
453 8.432637 7.678105 7.610083 7.640916 8.305286 ... 6.888020 6.553264 8.646732 8.628493 7.721341
454 9.055456 7.311839 7.413838 7.267197 7.253457 ... 7.585661 7.061526 8.355587 8.697914 7.646652
455 9.516074 8.071045 8.149921 9.263839 8.287315 ... 7.421049 6.959464 9.453780 9.958168 8.350330
456 10.070524 8.916685 9.093280 9.447184 9.086083 ... 9.234514 7.800037 10.031802 9.686283 9.196937
457 10.726476 8.270430 7.704192 8.026725 9.541432 ... 8.338713 6.688143 8.785184 10.426090 8.658769
458 9.751500 7.310215 8.136909 8.312466 7.316233 ... 7.874102 7.796568 9.434560 7.996315 8.094219
459 9.501868 8.039517 7.932875 8.385449 8.937402 ... 8.569393 6.948936 7.823537 9.030505 7.035568
460 9.476510 7.735094 7.266457 9.046955 8.358792 ... 8.635297 7.403172 8.382819 8.930228 6.963464
461 10.638806 9.091559 8.946520 9.440301 10.823085 ... 8.734041 7.767178 9.745443 9.859176 8.198679
[462 rows x 34 columns]

Get daily averages of monthly database

I have a long list of data structured in the following way
Date, Time, Temperature, Moisture, Accumulated precipitation
1/01/2011, 00:00, 23, 50, 2,
1/01/2011, 00:15, 22, 45, 1,
1/01/2011, 00:30, 20, 39, 0,
1/01/2011, 01:00, 25, 34, 0,
1/01/2011, 01:15, 23, 50, 0,
.
.
.
.
1/01/2011, 23:45, 22, 40, 0,
.
.
.
.
31/01/2011, 00:00, 23, 45, 0,
How I can get the daily averages of the variables Temperature and Moisture for the 31st day of the month?
This is the sort of thing that the pandas library is good at. The basic idea is that you can read data into objects called DataFrames, kind of like an Excel sheet, and then you can do neat things to them. Starting from a temps.csv file I made up to look like yours:
>>> df = pd.read_csv("temps.csv", index_col=False, parse_dates=[[0,1]], skipinitialspace=True)
>>> df = df.rename(columns={"Date _Time": "Time"})
>>> df = df.set_index("Time")
>>> df
Temperature Moisture Accumulated precipitation
Time
2011-01-01 00:00:00 23 50 2
2011-01-01 00:15:00 22 45 1
2011-01-01 00:30:00 20 39 0
2011-01-01 01:00:00 25 34 0
2011-01-01 01:15:00 23 50 0
2011-01-01 23:45:00 22 40 0
2011-01-02 00:00:00 123 250 32
2011-01-02 00:15:00 122 245 31
2011-01-02 00:30:00 120 239 30
2011-01-02 01:00:00 125 234 30
2011-01-02 01:15:00 123 250 30
2011-01-02 23:45:00 122 240 30
Once we have the frame in a nice shape, we can easily resample (the default is the mean):
>>> df.resample("D")
Temperature Moisture Accumulated precipitation
Time
2011-01-01 22.5 43 0.5
2011-01-02 122.5 243 30.5
Or get the max or min:
>>> df.resample("D", how="max")
Temperature Moisture Accumulated precipitation
Time
2011-01-01 25 50 2
2011-01-02 125 250 32
>>> df.resample("D", how="min")
Temperature Moisture Accumulated precipitation
Time
2011-01-01 20 34 0
2011-01-02 120 234 30
Et cetera. Note that this is just the brute average of the recorded data points each day: if you want to resample differently to account for the different distance between measurements, that's easy too. If you're going to be doing data processing in Python, it's definitely worth reading through the 10 minute overview to see if it might be helpful.
Use the suggestions on a different database, I did as follows:
df = pd.read_csv('path-tracks.csv', index_col= 'Date', parse_dates=[0])
df
Lat Lon ID Moisture Temperature Category
Date
2004-02-05 06:45:00 19.7 -95.2 1 45 -38 CCM
2004-02-05 07:45:00 19.7 -94.7 1 34 -48 CCM
2004-02-05 08:45:00 19.3 -93.9 1 57 -60 CCM
2004-02-05 09:45:00 19.0 -93.5 1 89 -58 CCM
2004-02-05 10:45:00 19.0 -92.8 1 34 -50 CCM
2004-02-05 11:45:00 19.2 -92.6 1 23 -40 CCM
2004-02-05 12:45:00 19.9 -93.0 1 10 -43 CCM
2004-02-05 13:15:00 20.0 -92.8 1 50 -32 CCM
2004-05-30 04:45:00 23.1 -100.2 2 45 -45 SCME
2004-05-30 05:45:00 23.2 -100.0 2 68 -56 SCME
2004-05-30 06:45:00 23.3 -100.0 2 90 -48 SCME
2004-05-30 07:45:00 23.3 -100.2 2 100 -32 SCME
2004-05-31 03:15:00 23.4 -99.0 3 12 -36 SCM
2004-05-31 04:15:00 23.5 -98.9 3 34 -46 SCM
2004-05-31 05:15:00 23.6 -98.7 3 56 -68 SCM
2004-05-31 06:15:00 23.7 -98.8 3 78 -30 SCM
Now try to get the daily sum as follows:
df.resample('D',how='sum')
i get the following:
Lat Lon ID Moisture Temperature
Date
2004-02-06 155.8 -748.5 8 342 -369
2004-02-07 NaN NaN NaN NaN NaN
2004-02-08 NaN NaN NaN NaN NaN
2004-02-09 NaN NaN NaN NaN NaN
2004-02-10 NaN NaN NaN NaN NaN
2004-02-11 NaN NaN NaN NaN NaN
2004-02-12 NaN NaN NaN NaN NaN
2004-02-13 NaN NaN NaN NaN NaN
2004-02-14 NaN NaN NaN NaN NaN
2004-02-15 NaN NaN NaN NaN NaN
2004-02-16 NaN NaN NaN NaN NaN
2004-02-17 NaN NaN NaN NaN NaN
2004-02-18 NaN NaN NaN NaN NaN
2004-02-19 NaN NaN NaN NaN NaN
2004-02-20 NaN NaN NaN NaN NaN
2004-02-21 NaN NaN NaN NaN NaN
2004-02-22 NaN NaN NaN NaN NaN
2004-02-23 NaN NaN NaN NaN NaN
2004-02-24 NaN NaN NaN NaN NaN
2004-02-25 NaN NaN NaN NaN NaN
2004-02-26 NaN NaN NaN NaN NaN
2004-02-27 NaN NaN NaN NaN NaN
2004-02-28 NaN NaN NaN NaN NaN
2004-02-29 NaN NaN NaN NaN NaN
2004-03-01 NaN NaN NaN NaN NaN
2004-03-02 NaN NaN NaN NaN NaN
2004-03-03 NaN NaN NaN NaN NaN
2004-03-04 NaN NaN NaN NaN NaN
2004-03-05 NaN NaN NaN NaN NaN
2004-03-06 NaN NaN NaN NaN NaN
2004-03-07 NaN NaN NaN NaN NaN
2004-03-08 NaN NaN NaN NaN NaN
2004-03-09 NaN NaN NaN NaN NaN
2004-03-10 NaN NaN NaN NaN NaN
2004-03-11 NaN NaN NaN NaN NaN
2004-03-12 NaN NaN NaN NaN NaN
2004-03-13 NaN NaN NaN NaN NaN
2004-03-14 NaN NaN NaN NaN NaN
2004-03-15 NaN NaN NaN NaN NaN
2004-03-16 NaN NaN NaN NaN NaN
2004-03-17 NaN NaN NaN NaN NaN
2004-03-18 NaN NaN NaN NaN NaN
2004-03-19 NaN NaN NaN NaN NaN
2004-03-20 NaN NaN NaN NaN NaN
2004-03-21 NaN NaN NaN NaN NaN
2004-03-22 NaN NaN NaN NaN NaN
2004-03-23 NaN NaN NaN NaN NaN
2004-03-24 NaN NaN NaN NaN NaN
2004-03-25 NaN NaN NaN NaN NaN
2004-03-26 NaN NaN NaN NaN NaN
2004-03-27 NaN NaN NaN NaN NaN
2004-03-28 NaN NaN NaN NaN NaN
2004-03-29 NaN NaN NaN NaN NaN
2004-03-30 NaN NaN NaN NaN NaN
2004-03-31 NaN NaN NaN NaN NaN
2004-04-01 NaN NaN NaN NaN NaN
2004-04-02 NaN NaN NaN NaN NaN
2004-04-03 NaN NaN NaN NaN NaN
2004-04-04 NaN NaN NaN NaN NaN
2004-04-05 NaN NaN NaN NaN NaN
2004-04-06 NaN NaN NaN NaN NaN
2004-04-07 NaN NaN NaN NaN NaN
2004-04-08 NaN NaN NaN NaN NaN
2004-04-09 NaN NaN NaN NaN NaN
2004-04-10 NaN NaN NaN NaN NaN
2004-04-11 NaN NaN NaN NaN NaN
2004-04-12 NaN NaN NaN NaN NaN
2004-04-13 NaN NaN NaN NaN NaN
2004-04-14 NaN NaN NaN NaN NaN
2004-04-15 NaN NaN NaN NaN NaN
2004-04-16 NaN NaN NaN NaN NaN
2004-04-17 NaN NaN NaN NaN NaN
2004-04-18 NaN NaN NaN NaN NaN
2004-04-19 NaN NaN NaN NaN NaN
2004-04-20 NaN NaN NaN NaN NaN
2004-04-21 NaN NaN NaN NaN NaN
2004-04-22 NaN NaN NaN NaN NaN
2004-04-23 NaN NaN NaN NaN NaN
2004-04-24 NaN NaN NaN NaN NaN
2004-04-25 NaN NaN NaN NaN NaN
2004-04-26 NaN NaN NaN NaN NaN
2004-04-27 NaN NaN NaN NaN NaN
2004-04-28 NaN NaN NaN NaN NaN
2004-04-29 NaN NaN NaN NaN NaN
2004-04-30 NaN NaN NaN NaN NaN
2004-05-01 NaN NaN NaN NaN NaN
2004-05-02 NaN NaN NaN NaN NaN
2004-05-03 NaN NaN NaN NaN NaN
2004-05-04 NaN NaN NaN NaN NaN
2004-05-05 NaN NaN NaN NaN NaN
2004-05-06 NaN NaN NaN NaN NaN
2004-05-07 NaN NaN NaN NaN NaN
2004-05-08 NaN NaN NaN NaN NaN
2004-05-09 NaN NaN NaN NaN NaN
2004-05-10 NaN NaN NaN NaN NaN
2004-05-11 NaN NaN NaN NaN NaN
2004-05-12 NaN NaN NaN NaN NaN
2004-05-13 NaN NaN NaN NaN NaN
2004-05-14 NaN NaN NaN NaN NaN
2004-05-15 NaN NaN NaN NaN NaN
2004-05-16 NaN NaN NaN NaN NaN
2004-05-17 NaN NaN NaN NaN NaN
2004-05-18 NaN NaN NaN NaN NaN
2004-05-19 NaN NaN NaN NaN NaN
2004-05-20 NaN NaN NaN NaN NaN
2004-05-21 NaN NaN NaN NaN NaN
2004-05-22 NaN NaN NaN NaN NaN
2004-05-23 NaN NaN NaN NaN NaN
2004-05-24 NaN NaN NaN NaN NaN
2004-05-25 NaN NaN NaN NaN NaN
2004-05-26 NaN NaN NaN NaN NaN
2004-05-27 NaN NaN NaN NaN NaN
2004-05-28 NaN NaN NaN NaN NaN
2004-05-29 NaN NaN NaN NaN NaN
2004-05-30 NaN NaN NaN NaN NaN
2004-05-31 92.9 -400.4 8 303 -181
2004-06-01 94.2 -395.4 12 180 -180
I did something wrong? because it no takes into account the date 2004-02-05 6:45:00? How do I fix this error?

Categories