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?
Related
I have the following single column DataFrame:
df:
data = {'YEAR': [2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030],
}
df = pd.DataFrame(data)
df
How can I create an empty square Dataframe from df like the following DatFrame:
I´m kinda new to Python. I have tried converting the original Dataframme to list and the create a new dataframe from there without success. I also tried to do somekind concatenation but it does not work either.
I guess that its not as hard, but I dont know how to do that.
Try provide both index and columns as Year when creating the data frame:
df = pd.DataFrame([], index=data['YEAR'], columns=data['YEAR'])
df
2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
2020 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2021 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2022 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2023 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2024 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2025 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2026 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2027 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2028 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2029 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2030 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
You can also use df.dot and replace:
df.set_index('YEAR').dot(df.set_index('YEAR').T).replace({0:''})
Use reindex:
df.reindex(columns=df.columns.union(df['YEAR']))
Output:
YEAR 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
0 2020 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2021 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 2022 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 2023 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2024 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 2025 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 2026 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 2027 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 2028 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 2029 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 2030 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
You can do this by simply using pandas.DataFrame.loc :
df.loc[:, df.set_index("YEAR").index.tolist()]= np.NaN #or ""
# Output :
print(df)
YEAR 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
0 2020 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2021 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 2022 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 2023 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2024 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 2025 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 2026 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 2027 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 2028 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 2029 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 2030 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
I'm getting a weird problem after hours of trying to figure out how to merge correcting.
Assuming two dataframes:
financials_Balance_Sheet_yearly.loc[financials_Balance_Sheet_yearly.ticker == 'AAPL.US']
Unnamed: 0 ticker date 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 retainedearningstotalequity treasurystock accumulatedamortization noncurrrentassetsother deferredlongtermassetcharges noncurrentassetstotal capitalleaseobligations longtermdebttotal noncurrentliabilitiesother noncurrentliabilitiestotal negativegoodwill warrants preferredstockredeemable capitalsurpluse liabilitiesandstockholdersequity cashandshortterminvestments propertyplantandequipmentgross accumulateddepreciation commonstocksharesoutstanding networkingcapital netdebt netinvestedcapital freecashflow changeinworkingcapital
128270 128270 AAPL.US 2019-09-30 2019-10-31 USD 3.385160e+11 NaN NaN 1.235200e+10 2.480280e+11 9.048800e+10 NaN 4.324200e+10 4.517400e+10 4.589800e+10 5.050300e+10 NaN 3.297800e+10 4.884400e+10 1.057180e+11 1.624000e+10 1.624000e+10 1.080470e+11 -5.840000e+08 3.737800e+10 1.628190e+11 1.053410e+11 9.048800e+10 5.171300e+10 4.580400e+10 9.180700e+10 4.106000e+09 4.623600e+10 NaN NaN NaN -5.840000e+08 NaN 4.517400e+10 NaN 4.589800e+10 NaN NaN 3.297800e+10 NaN 1.756970e+11 NaN 9.180700e+10 5.050300e+10 1.423100e+11 NaN NaN NaN NaN 3.385160e+11 1.005570e+11 3.737800e+10 NaN 1.859565e+10 5.710100e+10 5.920300e+10 1.985350e+11 NaN NaN
128288 128288 AAPL.US 2018-09-30 2018-11-05 USD 3.657250e+11 NaN NaN 1.208700e+10 2.585780e+11 1.071470e+11 2.797000e+09 4.023000e+10 4.020100e+10 7.040000e+10 4.891400e+10 NaN 2.228300e+10 2.591300e+10 1.168660e+11 2.074800e+10 2.074800e+10 1.144830e+11 -3.454000e+09 4.130400e+10 1.313390e+11 1.707990e+11 1.071470e+11 4.038800e+10 4.899500e+10 9.373500e+10 3.956000e+09 5.588800e+10 NaN NaN NaN -3.454000e+09 NaN 4.020100e+10 NaN 7.040000e+10 NaN NaN 2.228300e+10 NaN 2.343860e+11 NaN 9.373500e+10 4.518000e+10 1.417120e+11 NaN NaN NaN NaN 3.657250e+11 6.630100e+10 4.130400e+10 NaN 2.000044e+10 1.447300e+10 8.857000e+10 2.216300e+11 NaN NaN
128311 128311 AAPL.US 2017-09-30 2017-11-03 USD 3.753190e+11 2.298000e+09 NaN 1.393600e+10 2.412720e+11 1.340470e+11 2.836000e+09 7.548000e+09 3.586700e+10 9.833000e+10 4.325100e+10 5.717000e+09 1.817700e+10 2.028900e+10 1.008140e+11 1.847300e+10 1.847300e+10 1.156800e+11 -1.500000e+08 3.378300e+10 1.286450e+11 1.947140e+11 1.260320e+11 5.389200e+10 3.567300e+10 9.720700e+10 4.855000e+09 7.479300e+10 0.0 0.0 0.0 -1.500000e+08 0.0 3.586700e+10 0.0 9.833000e+10 0.0 NaN 1.016200e+10 NaN 2.466740e+11 NaN 9.720700e+10 4.041500e+10 1.404580e+11 NaN NaN NaN NaN 3.753190e+11 7.418100e+10 3.378300e+10 NaN 2.100677e+10 2.783100e+10 9.539100e+10 2.497270e+11 NaN NaN
128337 128337 AAPL.US 2016-09-30 2016-10-26 USD 3.216860e+11 3.206000e+09 NaN 8.283000e+09 1.934370e+11 1.282490e+11 2.930000e+09 8.080000e+09 3.125100e+10 9.636400e+10 3.900400e+10 5.414000e+09 8.757000e+09 2.048400e+10 7.900600e+10 1.160500e+10 1.160500e+10 8.703200e+10 6.340000e+08 2.701000e+10 1.068690e+11 1.704300e+11 1.196290e+11 4.667100e+10 1.575400e+10 7.542700e+10 2.132000e+09 5.932100e+10 NaN NaN NaN 6.340000e+08 NaN 3.125100e+10 NaN 9.636400e+10 NaN NaN -1.726200e+10 NaN 2.148170e+11 NaN 7.542700e+10 3.607400e+10 1.144310e+11 NaN NaN NaN NaN 3.216860e+11 6.715500e+10 2.701000e+10 NaN 2.200112e+10 NaN 6.654800e+10 NaN NaN NaN
128386 128386 AAPL.US 2014-09-30 2014-10-27 USD 2.318390e+11 4.142000e+09 NaN 9.806000e+09 1.202920e+11 1.115470e+11 3.031000e+09 8.491000e+09 2.331300e+10 8.715200e+10 7.598000e+09 4.616000e+09 3.764000e+09 1.384400e+10 6.344800e+10 6.308000e+09 3.529500e+10 3.529500e+10 1.082000e+09 2.062400e+10 6.853100e+10 1.301620e+11 1.027890e+11 1.123300e+10 1.746000e+10 2.898700e+10 2.111000e+09 4.864900e+10 0.0 0.0 0.0 1.082000e+09 0.0 2.331300e+10 0.0 8.715200e+10 0.0 NaN -1.649500e+10 NaN 1.633080e+11 NaN 2.898700e+10 2.482600e+10 5.684400e+10 NaN NaN NaN NaN 2.318390e+11 2.507700e+10 2.062400e+10 NaN 2.449065e+10 NaN 2.145100e+10 NaN NaN NaN
128413 128413 AAPL.US 2013-09-30 2013-10-30 USD 2.070000e+11 4.179000e+09 NaN 6.882000e+09 8.345100e+10 1.235490e+11 2.625000e+09 7.435000e+09 1.976400e+10 1.042560e+11 6.344000e+09 1.577000e+09 5.146000e+09 1.425900e+10 4.365800e+10 NaN NaN 1.696000e+10 -4.710000e+08 1.659700e+10 7.328600e+10 1.062150e+11 1.177930e+11 2.628700e+10 1.310200e+10 1.696000e+10 1.764000e+09 3.622300e+10 0.0 0.0 0.0 -4.710000e+08 0.0 1.976400e+10 0.0 1.042560e+11 0.0 NaN -1.134300e+10 NaN 1.337140e+11 NaN 1.696000e+10 2.020800e+10 3.979300e+10 NaN NaN NaN NaN 2.070000e+11 4.054600e+10 1.659700e+10 NaN 2.608654e+10 NaN 2.701000e+09 NaN NaN NaN
128450 128450 AAPL.US 2012-09-30 2012-10-31 USD 1.760640e+11 4.224000e+09 NaN 6.458000e+09 5.785400e+10 1.182100e+11 2.648000e+09 5.953000e+09 1.642200e+10 1.012890e+11 5.465000e+09 1.135000e+09 5.478000e+09 1.074600e+10 3.854200e+10 NaN NaN NaN 4.990000e+08 1.545200e+10 5.765300e+10 9.212200e+10 1.128510e+11 1.838300e+10 1.093000e+10 0.000000e+00 7.910000e+08 3.258900e+10 0.0 0.0 0.0 4.990000e+08 0.0 1.642200e+10 0.0 1.012890e+11 0.0 NaN -8.369000e+09 NaN 1.184110e+11 NaN NaN 1.666400e+10 1.931200e+10 NaN NaN NaN NaN 1.760640e+11 2.912900e+10 1.545200e+10 NaN 2.646994e+10 NaN -1.074600e+10 NaN NaN NaN
128453 128453 AAPL.US 2011-09-30 2011-10-26 USD 1.163710e+11 3.536000e+09 NaN 4.529000e+09 3.975600e+10 7.661500e+10 1.686000e+09 4.091000e+09 1.333100e+10 6.284100e+10 3.627000e+09 8.960000e+08 3.556000e+09 9.815000e+09 2.797000e+10 NaN NaN NaN 4.430000e+08 7.777000e+09 4.498800e+10 5.561800e+10 7.218300e+10 1.613700e+10 5.369000e+09 0.000000e+00 7.760000e+08 2.387900e+10 0.0 0.0 0.0 4.430000e+08 0.0 1.333100e+10 0.0 6.284100e+10 0.0 NaN -4.603000e+09 NaN 7.138300e+10 NaN NaN 1.010000e+10 1.178600e+10 NaN NaN NaN NaN 1.163710e+11 2.595200e+10 7.777000e+09 NaN 2.622606e+10 NaN -9.815000e+09 NaN NaN NaN
128514 128514 AAPL.US 2010-09-30 2010-10-27 USD 7.518300e+10 3.420000e+08 NaN 3.447000e+09 2.739200e+10 4.779100e+10 1.139000e+09 2.984000e+09 1.066800e+10 3.716900e+10 2.370000e+09 7.410000e+08 2.263000e+09 1.126100e+10 2.072200e+10 NaN NaN NaN -4.600000e+07 4.768000e+09 4.167800e+10 2.539100e+10 4.670800e+10 1.435900e+10 5.510000e+09 0.000000e+00 1.051000e+09 1.773800e+10 0.0 0.0 0.0 -4.600000e+07 0.0 1.066800e+10 0.0 3.716900e+10 0.0 NaN -2.037000e+09 NaN 3.350500e+10 NaN NaN 5.531000e+09 6.670000e+09 NaN NaN NaN NaN 7.518300e+10 2.562000e+10 4.768000e+09 NaN 2.589194e+10 NaN -1.126100e+10 NaN NaN NaN
128550 128550 AAPL.US 2008-09-30 2008-11-05 USD 3.957200e+10 3.520000e+08 NaN 4.987000e+09 1.854200e+10 2.103000e+10 NaN 8.572000e+09 7.177000e+09 1.384500e+10 3.775000e+09 2.070000e+08 1.868000e+09 1.187500e+10 1.409200e+10 NaN NaN NaN NaN 2.455000e+09 3.469000e+10 NaN NaN 1.261500e+10 2.422000e+09 NaN 5.090000e+08 5.520000e+09 NaN NaN NaN 8.000000e+06 NaN 7.177000e+09 NaN NaN NaN NaN 1.193000e+09 NaN 4.882000e+09 NaN NaN NaN 4.450000e+09 NaN NaN NaN NaN 3.957200e+10 NaN 2.455000e+09 NaN 2.525989e+10 NaN -1.187500e+10 NaN NaN NaN
128581 128581 AAPL.US 2006-09-30 2006-12-29 USD 1.720500e+10 1.390000e+08 NaN 1.284000e+09 7.221000e+09 9.984000e+09 NaN 3.081000e+09 4.355000e+09 5.607000e+09 3.690000e+08 3.800000e+07 1.217000e+09 6.392000e+09 6.471000e+09 NaN NaN NaN NaN 1.281000e+09 1.450900e+10 NaN NaN 3.718000e+09 1.252000e+09 NaN 2.700000e+08 3.390000e+09 NaN NaN NaN 2.200000e+07 NaN 4.355000e+09 NaN NaN NaN NaN 1.238000e+09 NaN 2.696000e+09 NaN NaN NaN 7.500000e+08 NaN NaN NaN NaN 1.720500e+10 NaN 1.281000e+09 NaN 2.457073e+10 NaN -6.392000e+09 NaN NaN NaN
128588 128588 AAPL.US 2005-09-30 2005-12-01 USD 1.155100e+10 6.500000e+07 NaN 5.620000e+08 4.085000e+09 7.466000e+09 NaN 1.705000e+09 3.521000e+09 4.005000e+09 2.930000e+08 6.900000e+07 3.000000e+08 3.491000e+09 3.484000e+09 NaN NaN NaN NaN 8.170000e+08 1.030000e+10 NaN NaN 4.770000e+09 8.950000e+08 NaN 1.650000e+08 1.779000e+09 NaN NaN NaN -6.640000e+08 NaN 3.521000e+09 NaN NaN NaN NaN -8.000000e+06 NaN 1.251000e+09 NaN NaN NaN 6.010000e+08 NaN NaN NaN NaN 1.155100e+10 NaN 8.170000e+08 NaN 2.398984e+10 NaN -3.491000e+09 NaN NaN NaN
128610 128610 AAPL.US 2004-09-30 2004-12-03 USD 8.050000e+09 4.200000e+07 NaN 4.400000e+08 2.974000e+09 5.076000e+09 NaN 1.229000e+09 2.514000e+09 2.670000e+09 2.940000e+08 8.000000e+07 1.896000e+08 2.969000e+09 2.680000e+09 NaN NaN NaN NaN 7.070000e+08 7.055000e+09 NaN NaN 2.495000e+09 7.740000e+08 NaN 1.010000e+08 1.451000e+09 NaN NaN NaN -1.500000e+07 NaN 2.514000e+09 NaN NaN NaN NaN -1.280000e+08 NaN 9.950000e+08 NaN NaN NaN 2.940000e+08 NaN NaN NaN NaN 8.050000e+09 NaN 7.070000e+08 NaN 2.168942e+10 NaN -2.969000e+09 NaN NaN NaN
128621 128621 AAPL.US 2002-09-30 2002-12-19 USD 6.298000e+09 3.400000e+07 NaN 4.410000e+08 2.203000e+09 4.095000e+09 NaN 7.470000e+08 1.826000e+09 2.325000e+09 NaN 8.500000e+07 1.700000e+08 2.252000e+09 1.658000e+09 NaN NaN 3.160000e+08 NaN 6.210000e+08 5.388000e+09 NaN NaN 2.085000e+09 5.650000e+08 3.160000e+08 4.500000e+07 9.110000e+08 NaN NaN NaN -5.600000e+07 NaN 1.826000e+09 NaN NaN NaN NaN -9.800000e+07 NaN 9.100000e+08 NaN NaN NaN 5.450000e+08 NaN NaN NaN NaN 6.298000e+09 NaN 6.210000e+08 NaN 2.025996e+10 NaN -1.936000e+09 NaN NaN NaN
128670 128670 AAPL.US 2001-09-30 2001-12-21 USD 6.021000e+09 1.000000e+07 NaN 3.300000e+08 2.101000e+09 3.920000e+09 NaN 7.170000e+08 1.693000e+09 2.260000e+09 NaN 6.600000e+07 3.140000e+08 2.310000e+09 1.518000e+09 NaN NaN 3.170000e+08 NaN 5.640000e+08 5.143000e+09 NaN NaN 2.026000e+09 4.660000e+08 3.170000e+08 1.100000e+07 8.010000e+08 NaN NaN NaN -3.300000e+07 NaN 1.693000e+09 NaN NaN NaN NaN -1.560000e+08 NaN 8.780000e+08 NaN NaN NaN 5.830000e+08 NaN NaN NaN NaN 6.021000e+09 NaN 5.640000e+08 NaN 1.935433e+10 NaN -1.993000e+09 NaN NaN NaN
128684 128684 AAPL.US 1999-09-30 1999-12-22 NaN 5.161000e+09 NaN NaN NaN 2.057000e+09 NaN NaN NaN NaN 1.499000e+09 NaN NaN NaN 1.326000e+09 1.549000e+09 NaN NaN 3.000000e+08 NaN NaN 4.285000e+09 NaN NaN 1.900000e+09 6.810000e+08 NaN 2.000000e+07 NaN NaN NaN NaN 1.060000e+08 NaN 1.349000e+09 NaN NaN NaN NaN 1.100000e+07 NaN 8.760000e+08 NaN NaN NaN 5.080000e+08 NaN NaN NaN NaN 5.161000e+09 NaN 3.180000e+08 NaN 1.950637e+10 NaN -1.026000e+09 NaN NaN NaN
128694 128694 AAPL.US 2000-09-30 2000-12-14 USD 6.803000e+09 NaN NaN 4.140000e+08 2.696000e+09 4.107000e+09 NaN 7.760000e+08 1.502000e+09 2.285000e+09 NaN NaN 1.063000e+09 1.191000e+09 1.933000e+09 NaN NaN 3.000000e+08 NaN 3.130000e+08 5.427000e+09 NaN NaN 2.836000e+09 9.530000e+08 3.000000e+08 3.300000e+07 1.157000e+09 NaN NaN NaN -3.870000e+08 NaN 1.502000e+09 76000000.0 NaN NaN NaN 1.063000e+09 NaN 1.376000e+09 NaN NaN NaN 7.630000e+08 NaN NaN NaN NaN 6.803000e+09 NaN 3.130000e+08 NaN 2.017814e+10 NaN -8.910000e+08 NaN NaN NaN
128698 128698 AAPL.US 1998-09-30 1998-09-25 NaN 4.289000e+09 NaN NaN NaN 2.647000e+09 NaN NaN NaN NaN 8.980000e+08 NaN NaN NaN 1.481000e+09 1.520000e+09 NaN NaN 9.540000e+08 NaN NaN 3.698000e+09 NaN NaN 8.190000e+08 9.550000e+08 NaN 7.800000e+07 NaN NaN NaN NaN -3.900000e+07 NaN 6.330000e+08 NaN NaN NaN NaN 7.000000e+07 NaN 5.910000e+08 NaN NaN NaN 1.127000e+09 NaN NaN NaN NaN 4.289000e+09 NaN 3.480000e+08 NaN 1.880670e+10 NaN -5.270000e+08 NaN NaN NaN
128713 128713 AAPL.US 1996-09-30 1996-12-19 NaN 5.364000e+09 NaN NaN NaN 3.306000e+09 NaN NaN NaN NaN 1.634000e+09 NaN NaN NaN 1.552000e+09 2.003000e+09 1.860000e+08 NaN 1.135000e+09 NaN NaN 4.515000e+09 NaN NaN 1.930000e+08 1.496000e+09 NaN 6.620000e+08 NaN NaN NaN NaN -3.000000e+07 NaN 4.390000e+08 NaN NaN NaN NaN -1.030000e+08 NaN 8.490000e+08 NaN NaN NaN 1.303000e+09 NaN NaN NaN NaN 5.364000e+09 NaN 5.980000e+08 NaN 1.385821e+10 NaN -4.170000e+08 NaN NaN NaN
128720 128720 AAPL.US 1994-09-30 1994-12-13 NaN 5.302746e+09 NaN NaN NaN 2.919445e+09 NaN NaN NaN NaN 2.096206e+09 NaN NaN NaN 1.203488e+09 1.944305e+09 2.922000e+08 NaN 5.962000e+08 NaN NaN 4.476452e+09 NaN NaN 5.436800e+07 1.581347e+09 NaN 1.088434e+09 NaN NaN NaN NaN -7.850880e+08 NaN 2.979290e+08 NaN NaN NaN NaN 1.591940e+08 NaN 8.262940e+08 NaN NaN NaN 9.751400e+08 NaN NaN NaN NaN 5.302746e+09 NaN 6.671000e+08 NaN 1.330672e+10 NaN -6.072880e+08 NaN NaN NaN
128748 128748 AAPL.US 1992-09-30 1992-09-30 NaN 4.223700e+09 NaN NaN NaN 2.036300e+09 NaN NaN NaN NaN 1.904500e+09 NaN NaN NaN 4.986000e+08 1.425500e+09 1.845000e+08 NaN 1.845000e+08 NaN NaN 3.558400e+09 NaN NaN NaN 1.087200e+09 NaN 5.801000e+08 NaN NaN NaN NaN -6.734000e+08 NaN NaN NaN NaN NaN NaN 2.031000e+08 NaN 6.653000e+08 NaN NaN NaN 6.108000e+08 NaN NaN NaN NaN 4.223700e+09 NaN 4.622000e+08 NaN 1.368774e+10 NaN -3.141000e+08 NaN NaN NaN
128753 128753 AAPL.US 1991-09-30 1991-09-30 NaN 3.493600e+09 NaN NaN NaN 1.726900e+09 NaN NaN NaN NaN 1.492000e+09 NaN NaN NaN 6.041000e+08 1.217100e+09 1.486000e+08 NaN 1.486000e+08 NaN NaN 2.863600e+09 NaN NaN NaN 9.072000e+08 NaN 6.717000e+08 NaN NaN NaN NaN -5.880000e+08 NaN NaN NaN NaN NaN NaN 1.820000e+08 NaN 6.300000e+08 NaN NaN NaN 5.098000e+08 NaN NaN NaN NaN 3.493600e+09 NaN 4.480000e+08 NaN 1.344868e+10 NaN -4.555000e+08 NaN NaN NaN
128765 128765 AAPL.US 1990-09-30 1990-09-30 NaN 2.975700e+09 NaN NaN NaN 1.528900e+09 NaN NaN NaN NaN 1.312200e+09 NaN NaN NaN 3.747000e+08 1.027000e+09 1.226000e+08 NaN 1.226000e+08 NaN NaN 2.403300e+09 NaN NaN NaN 7.619000e+08 NaN 3.555000e+08 NaN NaN NaN NaN -4.467000e+08 NaN NaN NaN NaN NaN NaN 1.742000e+08 NaN 5.724000e+08 NaN NaN NaN 5.019000e+08 NaN NaN NaN NaN 2.975700e+09 NaN 3.982000e+08 NaN 1.407111e+10 NaN -2.521000e+08 NaN NaN NaN
128805 128805 AAPL.US 1988-09-30 1988-09-30 NaN 2.082100e+09 NaN NaN NaN 1.078700e+09 NaN NaN NaN NaN 7.765000e+08 NaN NaN NaN 5.457000e+08 8.271000e+08 1.279000e+08 NaN 3.150000e+08 NaN NaN 1.783000e+09 NaN NaN NaN 6.388000e+08 NaN 4.615000e+08 NaN NaN NaN NaN -2.130000e+08 NaN NaN NaN NaN NaN NaN 9.170000e+07 NaN 2.991000e+08 NaN NaN NaN 2.516000e+08 NaN NaN NaN NaN 2.082100e+09 NaN 2.074000e+08 NaN 1.455636e+10 NaN -2.307000e+08 NaN NaN NaN
128810 128810 AAPL.US 1989-09-30 1989-09-30 NaN 2.743900e+09 NaN NaN NaN 1.258200e+09 NaN NaN NaN NaN 1.175900e+09 NaN NaN NaN 4.383000e+08 8.953000e+08 5.680000e+07 NaN 5.680000e+07 NaN NaN 2.294400e+09 NaN NaN NaN 7.928000e+08 NaN 4.754000e+08 NaN NaN NaN NaN -3.091000e+08 NaN NaN NaN NaN NaN NaN 1.153000e+08 NaN 4.495000e+08 NaN NaN NaN 3.629000e+08 NaN NaN NaN NaN 2.743900e+09 NaN 3.342000e+08 NaN 1.436384e+10 NaN -3.815000e+08 NaN NaN NaN
128846 128846 AAPL.US 1985-09-30 1985-09-30 NaN 9.362000e+08 NaN NaN NaN 3.857000e+08 NaN NaN NaN NaN 3.203000e+08 NaN NaN NaN 3.370000e+08 2.954000e+08 NaN NaN NaN NaN NaN 8.221000e+08 NaN NaN NaN 2.202000e+08 NaN 1.670000e+08 NaN NaN NaN NaN -8.520000e+07 NaN NaN NaN NaN NaN NaN 2.370000e+07 NaN 1.141000e+08 NaN NaN NaN 9.030000e+07 NaN NaN NaN NaN 9.362000e+08 NaN 9.040000e+07 NaN 1.370880e+10 NaN -3.370000e+08 NaN NaN NaN
145183 145183 AAPL.US 1993-09-30 1993-09-30 NaN 5.171400e+09 NaN NaN NaN 3.145000e+09 NaN NaN NaN NaN 1.842600e+09 NaN NaN NaN 6.764000e+08 2.515200e+09 8.232000e+08 NaN 8.232000e+08 NaN NaN 4.338400e+09 NaN NaN NaN 1.381900e+09 NaN 1.506600e+09 NaN NaN NaN NaN -7.531000e+08 NaN NaN NaN NaN NaN NaN 1.735000e+08 NaN 8.330000e+08 NaN NaN NaN 6.298000e+08 NaN NaN NaN NaN 5.171400e+09 NaN 6.595000e+08 NaN 1.310703e+10 NaN 1.468000e+08 NaN NaN NaN
193123 193123 AAPL.US 1986-09-30 1986-09-30 NaN 1.160100e+09 NaN NaN NaN 4.660000e+08 NaN NaN NaN NaN 4.743000e+08 NaN NaN NaN 5.762000e+08 3.285000e+08 NaN NaN NaN NaN NaN 1.040900e+09 NaN NaN NaN 2.631000e+08 NaN 1.087000e+08 NaN NaN NaN NaN -1.147000e+08 NaN NaN NaN NaN NaN NaN 1.190000e+07 NaN 1.192000e+08 NaN NaN NaN 1.375000e+08 NaN NaN NaN NaN 1.160100e+09 NaN 1.073000e+08 NaN 1.437333e+10 NaN -5.762000e+08 NaN NaN NaN
214345 214345 AAPL.US 1997-09-30 1997-12-05 NaN 4.233000e+09 NaN NaN NaN 3.033000e+09 NaN NaN NaN NaN 5.890000e+08 NaN NaN NaN 1.230000e+09 1.818000e+09 2.500000e+07 NaN 9.760000e+08 NaN NaN 3.424000e+09 NaN NaN 2.290000e+08 1.035000e+09 NaN 4.370000e+08 NaN NaN NaN NaN -7.400000e+07 NaN 4.980000e+08 NaN NaN NaN NaN 5.900000e+07 NaN 8.090000e+08 NaN NaN NaN 1.215000e+09 NaN NaN NaN NaN 4.233000e+09 NaN 4.860000e+08 NaN 1.411894e+10 NaN -2.540000e+08 NaN NaN NaN
219538 219538 AAPL.US 2020-09-30 2020-10-30 USD 3.238880e+11 NaN NaN 1.126400e+10 2.585490e+11 6.533900e+10 NaN 4.932700e+10 5.077900e+10 1.496600e+10 4.610800e+10 NaN 3.395200e+10 3.801600e+10 1.053920e+11 1.376900e+10 1.376900e+10 1.124360e+11 -4.060000e+08 4.533600e+10 1.437130e+11 1.008870e+11 6.533900e+10 5.292700e+10 3.744500e+10 9.866700e+10 4.061000e+09 4.229600e+10 NaN NaN NaN -4.060000e+08 NaN 5.077900e+10 NaN 1.496600e+10 NaN NaN 4.252200e+10 NaN 1.801750e+11 NaN 9.866700e+10 5.449000e+10 1.531570e+11 NaN NaN NaN NaN 3.238880e+11 9.094300e+10 3.676600e+10 NaN 1.752821e+10 3.832100e+10 7.442000e+10 1.777750e+11 NaN NaN
Then this dataframe:
financials_Income_Statement_yearly.loc[financials_Income_Statement_yearly.ticker == 'AAPL.US']
Unnamed: 0 ticker date filing_date currency_symbol researchdevelopment effectofaccountingcharges incomebeforetax minorityinterest netincome sellinggeneraladministrative grossprofit ebit nonoperatingincomenetother operatingincome otheroperatingexpenses interestexpense taxprovision interestincome netinterestincome extraordinaryitems nonrecurring otheritems incometaxexpense totalrevenue totaloperatingexpenses costofrevenue totalotherincomeexpensenet discontinuedoperations netincomefromcontinuingops netincomeapplicabletocommonshares preferredstockandotheradjustments sellingandmarketingexpenses reconcileddepreciation ebitda depreciationandamortization
21731 21731 AAPL.US 2000-09-30 2000-12-14 USD 3.800000e+08 NaN 1.092000e+09 NaN 7.860000e+08 1.166000e+09 2.166000e+09 1.113000e+09 NaN 6.200000e+08 7.363000e+09 2.100000e+07 NaN NaN NaN NaN NaN NaN 3.060000e+08 7.983000e+09 1.546000e+09 5.817000e+09 -4.720000e+08 NaN NaN 7.860000e+08 NaN NaN NaN 1.197000e+09 8.400000e+07
29898 29898 AAPL.US 2020-09-30 2020-10-30 USD 1.875200e+10 NaN 6.709100e+10 NaN 5.741100e+10 1.991600e+10 1.049560e+11 6.996400e+10 NaN 6.628800e+10 2.082270e+11 2.873000e+09 9.680000e+09 3.763000e+09 8.900000e+08 NaN NaN NaN 9.680000e+09 2.745150e+11 3.866800e+10 1.695590e+11 -8.030000e+08 NaN 5.741100e+10 5.741100e+10 NaN NaN 1.105600e+10 8.102000e+10 1.105600e+10
29924 29924 AAPL.US 2016-09-30 2016-10-26 USD 1.004500e+10 NaN 6.137200e+10 NaN 4.568700e+10 1.419400e+10 8.426300e+10 6.282800e+10 1.348000e+09 6.002400e+10 1.556150e+11 1.456000e+09 1.568500e+10 3.999000e+09 2.543000e+09 NaN NaN NaN 1.568500e+10 2.156390e+11 2.423900e+10 1.313760e+11 -1.348000e+09 NaN 4.568700e+10 4.568700e+10 NaN NaN NaN 7.333300e+10 1.050500e+10
29949 29949 AAPL.US 2012-09-30 2012-10-31 USD 3.381000e+09 NaN 5.576300e+10 NaN 4.173300e+10 1.004000e+10 6.866200e+10 5.576300e+10 5.220000e+08 5.524100e+10 1.012670e+11 0.000000e+00 NaN NaN NaN NaN NaN NaN 1.403000e+10 1.565080e+11 1.342100e+10 8.784600e+10 -5.220000e+08 NaN 4.173300e+10 4.173300e+10 NaN NaN NaN 5.904000e+10 3.277000e+09
29957 29957 AAPL.US 2005-09-30 2005-12-01 USD 5.340000e+08 NaN 1.815000e+09 NaN 1.335000e+09 1.859000e+09 4.043000e+09 1.815000e+09 NaN 1.650000e+09 1.228100e+10 NaN NaN NaN NaN NaN NaN NaN 4.800000e+08 1.393100e+10 2.393000e+09 9.888000e+09 -1.650000e+08 NaN NaN 1.335000e+09 NaN NaN NaN 1.994000e+09 1.790000e+08
29980 29980 AAPL.US 1992-09-30 1992-09-30 NaN NaN NaN 8.555000e+08 NaN 5.304000e+08 2.289400e+09 3.312300e+09 8.555000e+08 NaN 8.057000e+08 6.280800e+09 NaN NaN NaN NaN NaN NaN NaN 3.251000e+08 7.086500e+09 2.506600e+09 3.774200e+09 -4.980000e+07 NaN NaN NaN NaN NaN NaN 1.072700e+09 2.172000e+08
29990 29990 AAPL.US 1991-09-30 1991-09-30 NaN NaN NaN 4.997000e+08 NaN 3.098000e+08 2.547400e+09 3.199100e+09 4.997000e+08 NaN 4.473000e+08 5.861500e+09 NaN NaN NaN NaN NaN NaN NaN 1.899000e+08 6.308800e+09 2.751800e+09 3.109700e+09 -5.240000e+07 NaN NaN NaN NaN NaN NaN 7.041000e+08 2.044000e+08
30011 30011 AAPL.US 1985-09-30 1985-09-30 NaN NaN NaN 1.200000e+08 NaN 6.120000e+07 6.532000e+08 8.423000e+08 1.200000e+08 NaN 1.473000e+08 1.771000e+09 NaN NaN NaN NaN NaN NaN NaN 5.880000e+07 1.918300e+09 6.950000e+08 1.076000e+09 2.730000e+07 NaN NaN NaN NaN NaN NaN 1.618000e+08 4.180000e+07
97600 97600 AAPL.US 2019-09-30 2019-10-31 USD 1.621700e+10 NaN 6.573700e+10 NaN 5.525600e+10 1.824500e+10 9.839200e+10 6.931300e+10 1.807000e+09 6.393000e+10 1.962440e+11 3.576000e+09 1.048100e+10 4.961000e+09 1.385000e+09 NaN NaN NaN 1.048100e+10 2.601740e+11 3.446200e+10 1.617820e+11 -1.807000e+09 NaN 5.525600e+10 5.525600e+10 NaN NaN 1.254700e+10 8.186000e+10 1.254700e+10
97645 97645 AAPL.US 2017-09-30 2017-11-03 USD 1.158100e+10 NaN 6.408900e+10 NaN 4.835100e+10 1.526100e+10 8.818600e+10 6.641200e+10 2.745000e+09 6.134400e+10 1.678900e+11 2.323000e+09 1.573800e+10 5.201000e+09 2.878000e+09 NaN NaN NaN 1.573800e+10 2.292340e+11 2.684200e+10 1.410480e+11 -2.745000e+09 NaN 4.835100e+10 4.835100e+10 NaN NaN 1.015700e+10 7.656900e+10 1.015700e+10
97680 97680 AAPL.US 2015-09-30 2015-10-28 USD 8.067000e+09 NaN 7.251500e+10 NaN 5.339400e+10 1.432900e+10 9.362600e+10 7.324800e+10 1.285000e+09 7.123000e+10 1.624850e+11 7.330000e+08 1.912100e+10 NaN NaN NaN NaN NaN 1.912100e+10 2.337150e+11 2.239600e+10 1.400890e+11 -1.285000e+09 NaN 5.339400e+10 5.339400e+10 NaN NaN NaN 8.450500e+10 1.125700e+10
97709 97709 AAPL.US 2014-09-30 2014-10-27 USD 6.041000e+09 NaN 5.348300e+10 NaN 3.951000e+10 1.199300e+10 7.053700e+10 5.386700e+10 9.800000e+08 5.250300e+10 1.302920e+11 3.840000e+08 NaN NaN NaN NaN NaN NaN 1.397300e+10 1.827950e+11 1.803400e+10 1.122580e+11 -9.800000e+08 NaN 3.951000e+10 3.951000e+10 NaN NaN NaN 6.181300e+10 7.946000e+09
97728 97728 AAPL.US 2011-09-30 2011-10-26 USD 2.429000e+09 NaN 3.420500e+10 NaN 2.592200e+10 7.599000e+09 4.381800e+10 3.420500e+10 4.150000e+08 3.379000e+10 7.445900e+10 0.000000e+00 NaN NaN NaN NaN NaN NaN 8.283000e+09 1.082490e+11 1.002800e+10 6.443100e+10 -4.150000e+08 NaN 2.592200e+10 2.592200e+10 NaN NaN NaN 3.601900e+10 1.814000e+09
97750 97750 AAPL.US 2010-09-30 2010-10-27 USD 1.782000e+09 NaN 1.854000e+10 NaN 1.401300e+10 5.517000e+09 2.568400e+10 1.854000e+10 1.550000e+08 1.838500e+10 4.684000e+10 0.000000e+00 NaN NaN NaN NaN NaN NaN 4.527000e+09 6.522500e+10 7.299000e+09 3.954100e+10 -1.550000e+08 NaN 1.401300e+10 1.401300e+10 NaN NaN NaN 1.956700e+10 1.027000e+09
97778 97778 AAPL.US 2009-09-30 2009-10-27 USD 1.333000e+09 NaN 7.984000e+09 NaN 5.704000e+09 4.149000e+09 1.314000e+10 7.984000e+09 3.260000e+08 7.658000e+09 2.887900e+10 0.000000e+00 NaN NaN NaN NaN NaN NaN 2.280000e+09 3.653700e+10 5.482000e+09 2.339700e+10 -3.260000e+08 NaN 8.235000e+09 8.235000e+09 NaN NaN NaN 8.718000e+09 7.340000e+08
97785 97785 AAPL.US 2008-09-30 2008-11-05 USD 1.109000e+09 NaN 6.895000e+09 NaN 4.834000e+09 3.761000e+09 1.114500e+10 6.895000e+09 NaN 6.275000e+09 2.620400e+10 NaN NaN NaN NaN NaN NaN NaN 2.061000e+09 3.247900e+10 4.870000e+09 2.133400e+10 -6.200000e+08 NaN NaN 4.834000e+09 NaN NaN NaN 7.368000e+09 4.730000e+08
97808 97808 AAPL.US 2007-09-30 2007-11-15 USD 7.820000e+08 NaN 5.008000e+09 NaN 3.496000e+09 2.963000e+09 8.154000e+09 5.008000e+09 NaN 4.409000e+09 1.959700e+10 NaN NaN NaN NaN NaN NaN NaN 1.512000e+09 2.400600e+10 3.745000e+09 1.585200e+10 -5.990000e+08 NaN NaN 3.496000e+09 NaN NaN NaN 5.325000e+09 3.170000e+08
97833 97833 AAPL.US 2004-09-30 2004-12-03 USD 4.890000e+08 NaN 3.830000e+08 NaN 2.760000e+08 1.421000e+09 2.259000e+09 3.860000e+08 NaN 3.490000e+08 7.930000e+09 3.000000e+06 NaN NaN NaN NaN NaN NaN 1.070000e+08 8.279000e+09 1.910000e+09 6.020000e+09 -3.400000e+07 NaN NaN 2.760000e+08 NaN NaN NaN 5.360000e+08 1.500000e+08
97844 97844 AAPL.US 2003-09-30 2003-12-19 USD 4.710000e+08 NaN 9.200000e+07 NaN 6.900000e+07 1.212000e+09 1.708000e+09 1.010000e+08 NaN 2.500000e+07 6.182000e+09 8.000000e+06 NaN NaN NaN 1.000000e+06 NaN NaN 2.400000e+07 6.207000e+09 1.683000e+09 4.499000e+09 -6.700000e+07 NaN NaN 6.800000e+07 NaN NaN NaN 2.140000e+08 1.130000e+08
97866 97866 AAPL.US 2002-09-30 2002-12-19 USD 4.470000e+08 NaN 8.700000e+07 NaN 6.500000e+07 1.111000e+09 1.603000e+09 9.800000e+07 NaN 4.500000e+07 5.697000e+09 1.100000e+07 NaN NaN NaN NaN NaN NaN 2.200000e+07 5.742000e+09 1.558000e+09 4.139000e+09 -4.200000e+07 NaN NaN 6.500000e+07 NaN NaN NaN 2.120000e+08 1.140000e+08
97876 97876 AAPL.US 2001-09-30 2001-12-21 USD 4.410000e+08 NaN -5.200000e+07 NaN -2.500000e+07 1.138000e+09 1.235000e+09 -2.400000e+07 NaN -3.440000e+08 5.707000e+09 1.600000e+07 NaN NaN NaN 1.200000e+07 NaN NaN -1.500000e+07 5.363000e+09 1.579000e+09 4.128000e+09 -2.920000e+08 NaN NaN NaN NaN NaN NaN 7.600000e+07 1.000000e+08
97903 97903 AAPL.US 1999-09-30 1999-12-22 NaN 3.140000e+08 NaN 6.760000e+08 NaN 6.010000e+08 9.960000e+08 1.696000e+09 7.230000e+08 NaN 3.860000e+08 5.748000e+09 4.700000e+07 NaN NaN NaN NaN NaN NaN 7.500000e+07 6.134000e+09 1.310000e+09 4.438000e+09 -2.900000e+08 NaN NaN NaN NaN NaN NaN 8.080000e+08 8.500000e+07
97910 97910 AAPL.US 1998-09-30 1998-09-25 NaN 3.100000e+08 NaN 3.290000e+08 NaN 3.090000e+08 9.080000e+08 1.479000e+09 3.910000e+08 NaN 2.610000e+08 5.680000e+09 6.200000e+07 NaN NaN NaN NaN NaN NaN 2.000000e+07 5.941000e+09 1.218000e+09 4.462000e+09 -6.800000e+07 NaN NaN NaN NaN NaN NaN 5.020000e+08 1.110000e+08
97935 97935 AAPL.US 1996-09-30 1996-12-19 NaN 6.040000e+08 NaN -1.295000e+09 NaN -8.160000e+08 1.568000e+09 9.680000e+08 -1.235000e+09 NaN -1.204000e+09 1.103700e+10 6.000000e+07 NaN NaN NaN NaN NaN NaN -4.790000e+08 9.833000e+09 2.172000e+09 8.865000e+09 9.100000e+07 NaN NaN NaN NaN NaN NaN -1.079000e+09 1.560000e+08
97942 97942 AAPL.US 1995-09-30 1995-12-19 NaN 6.140000e+08 NaN 6.740000e+08 NaN 4.240000e+08 1.583000e+09 2.858000e+09 7.220000e+08 NaN 6.610000e+08 1.040100e+10 4.800000e+07 NaN NaN NaN NaN NaN NaN 2.500000e+08 1.106200e+10 2.197000e+09 8.204000e+09 -1.300000e+07 NaN NaN NaN NaN NaN NaN 8.490000e+08 1.270000e+08
97951 97951 AAPL.US 1994-09-30 1994-12-13 NaN 5.643030e+08 NaN 5.002860e+08 NaN 3.101780e+08 1.384111e+09 2.343833e+09 5.399390e+08 NaN 3.954190e+08 8.793329e+09 3.965300e+07 NaN NaN NaN NaN NaN NaN 1.901080e+08 9.188748e+09 1.948414e+09 6.844915e+09 -1.048670e+08 NaN NaN NaN NaN NaN NaN 7.078970e+08 1.679580e+08
97971 97971 AAPL.US 1993-09-30 1993-09-30 NaN NaN NaN 1.397000e+08 NaN 8.660000e+07 2.617800e+09 2.894300e+09 1.397000e+08 NaN 1.104000e+08 7.866600e+09 NaN NaN NaN NaN NaN NaN NaN 5.310000e+07 7.977000e+09 2.783900e+09 5.082700e+09 -2.930000e+07 NaN NaN NaN NaN NaN NaN 3.058000e+08 1.661000e+08
98003 98003 AAPL.US 1990-09-30 1990-09-30 NaN NaN NaN 7.785000e+08 NaN 4.749000e+08 2.240200e+09 3.154900e+09 7.785000e+08 NaN 7.120000e+08 4.846400e+09 NaN NaN NaN NaN NaN NaN NaN 3.036000e+08 5.558400e+09 2.442900e+09 2.403500e+09 -6.650000e+07 NaN NaN NaN NaN NaN NaN 9.812000e+08 2.027000e+08
98013 98013 AAPL.US 1989-09-30 1989-09-30 NaN NaN NaN 7.443000e+08 NaN 4.540000e+08 1.954900e+09 2.714000e+09 7.443000e+08 NaN 6.343000e+08 4.649700e+09 NaN NaN NaN NaN NaN NaN NaN 2.903000e+08 5.284000e+09 2.079700e+09 2.570000e+09 -1.100000e+08 NaN NaN NaN NaN NaN NaN 8.691000e+08 1.248000e+08
98036 98036 AAPL.US 1987-09-30 1987-09-30 NaN NaN NaN 4.104000e+08 NaN 2.175000e+08 9.934000e+08 1.435400e+09 4.104000e+08 NaN 3.715000e+08 2.289600e+09 NaN NaN NaN NaN NaN NaN NaN 1.929000e+08 2.661100e+09 1.063900e+09 1.225700e+09 -3.890000e+07 NaN NaN NaN NaN NaN NaN 4.809000e+08 7.050000e+07
98047 98047 AAPL.US 1986-09-30 1986-09-30 NaN NaN NaN 3.098000e+08 NaN 1.540000e+08 7.373000e+08 1.061900e+09 3.098000e+08 NaN 2.735000e+08 1.628400e+09 NaN NaN NaN NaN NaN NaN NaN 1.558000e+08 1.901900e+09 7.884000e+08 8.400000e+08 -3.630000e+07 NaN NaN NaN NaN NaN NaN 3.609000e+08 5.110000e+07
If I try to merge it:
var = pd.concat([financials_Balance_Sheet_yearly, financials_Income_Statement_yearly], axis=1)
var = var.loc[var['ticker'] == 'AAPL.US']
var
I get this error:
ValueError: Cannot index with multidimensional key
When I tried merge, I got empty cells.
Basically ticker and date should be the keys to map all the other columns. If they don't match, then. it should keep the data and I'll assess the problem/clean it up.
How can I do this?
I think the columns 'ticker' and 'date' present in both DataFrames are causing both the 'ticker' and 'date' columns to become multidimensional when you concatenate the DataFrames together.
When I run your original code, this is what var['ticker'] looks like (and var['date'] looks similar):
>>> var['ticker']
ticker ticker
0 AAPL.US AAPL.US
1 AAPL.US AAPL.US
2 AAPL.US AAPL.US
3 AAPL.US AAPL.US
4 AAPL.US AAPL.US
5 AAPL.US AAPL.US
6 AAPL.US AAPL.US
7 AAPL.US AAPL.US
8 AAPL.US AAPL.US
9 AAPL.US AAPL.US
10 AAPL.US AAPL.US
11 AAPL.US AAPL.US
12 AAPL.US AAPL.US
13 AAPL.US AAPL.US
14 AAPL.US AAPL.US
15 AAPL.US AAPL.US
16 AAPL.US AAPL.US
17 AAPL.US AAPL.US
18 AAPL.US AAPL.US
19 AAPL.US AAPL.US
20 AAPL.US AAPL.US
21 AAPL.US AAPL.US
22 AAPL.US AAPL.US
23 AAPL.US AAPL.US
24 AAPL.US AAPL.US
25 AAPL.US AAPL.US
26 AAPL.US AAPL.US
27 AAPL.US AAPL.US
28 AAPL.US AAPL.US
29 AAPL.US AAPL.US
30 NaN AAPL.US
One solution could be to set the ticker and date columns to the be index before concatenating the DataFrames, then reset the index:
pd.concat([df1.set_index(['ticker','date']),df2.set_index(['ticker','date'])],axis=1).reset_index()
ticker date Unnamed: 0 filing_date currency_symbol ... netincomeapplicabletocommonshares preferredstockandotheradjustments sellingandmarketingexpenses reconcileddepreciation ebitda depreciationandamortization
0 AAPL.US 1985-09-30 128846.0 128846.0 1985-09-30 NaN ... NaN NaN NaN NaN 1.618000e+08 4.180000e+07
1 AAPL.US 1986-09-30 193123.0 193123.0 1986-09-30 NaN ... NaN NaN NaN NaN 3.609000e+08 5.110000e+07
2 AAPL.US 1987-09-30 NaN NaN NaN NaN ... NaN NaN NaN NaN 4.809000e+08 7.050000e+07
3 AAPL.US 1988-09-30 128805.0 128805.0 1988-09-30 NaN ... NaN NaN NaN NaN NaN NaN
4 AAPL.US 1989-09-30 128810.0 128810.0 1989-09-30 NaN ... NaN NaN NaN NaN 8.691000e+08 1.248000e+08
5 AAPL.US 1990-09-30 128765.0 128765.0 1990-09-30 NaN ... NaN NaN NaN NaN 9.812000e+08 2.027000e+08
6 AAPL.US 1991-09-30 128753.0 128753.0 1991-09-30 NaN ... NaN NaN NaN NaN 7.041000e+08 2.044000e+08
7 AAPL.US 1992-09-30 128748.0 128748.0 1992-09-30 NaN ... NaN NaN NaN NaN 1.072700e+09 2.172000e+08
8 AAPL.US 1993-09-30 145183.0 145183.0 1993-09-30 NaN ... NaN NaN NaN NaN 3.058000e+08 1.661000e+08
9 AAPL.US 1994-09-30 128720.0 128720.0 1994-12-13 NaN ... NaN NaN NaN NaN 7.078970e+08 1.679580e+08
10 AAPL.US 1995-09-30 NaN NaN NaN NaN ... NaN NaN NaN NaN 8.490000e+08 1.270000e+08
11 AAPL.US 1996-09-30 128713.0 128713.0 1996-12-19 NaN ... NaN NaN NaN NaN -1.079000e+09 1.560000e+08
12 AAPL.US 1997-09-30 214345.0 214345.0 1997-12-05 NaN ... NaN NaN NaN NaN NaN NaN
13 AAPL.US 1998-09-30 128698.0 128698.0 1998-09-25 NaN ... NaN NaN NaN NaN 5.020000e+08 1.110000e+08
14 AAPL.US 1999-09-30 128684.0 128684.0 1999-12-22 NaN ... NaN NaN NaN NaN 8.080000e+08 8.500000e+07
15 AAPL.US 2000-09-30 128694.0 128694.0 2000-12-14 USD ... 7.860000e+08 NaN NaN NaN 1.197000e+09 8.400000e+07
16 AAPL.US 2001-09-30 128670.0 128670.0 2001-12-21 USD ... NaN NaN NaN NaN 7.600000e+07 1.000000e+08
17 AAPL.US 2002-09-30 128621.0 128621.0 2002-12-19 USD ... 6.500000e+07 NaN NaN NaN 2.120000e+08 1.140000e+08
18 AAPL.US 2003-09-30 NaN NaN NaN NaN ... 6.800000e+07 NaN NaN NaN 2.140000e+08 1.130000e+08
19 AAPL.US 2004-09-30 128610.0 128610.0 2004-12-03 USD ... 2.760000e+08 NaN NaN NaN 5.360000e+08 1.500000e+08
20 AAPL.US 2005-09-30 128588.0 128588.0 2005-12-01 USD ... 1.335000e+09 NaN NaN NaN 1.994000e+09 1.790000e+08
21 AAPL.US 2006-09-30 128581.0 128581.0 2006-12-29 USD ... NaN NaN NaN NaN NaN NaN
22 AAPL.US 2007-09-30 NaN NaN NaN NaN ... 3.496000e+09 NaN NaN NaN 5.325000e+09 3.170000e+08
23 AAPL.US 2008-09-30 128550.0 128550.0 2008-11-05 USD ... 4.834000e+09 NaN NaN NaN 7.368000e+09 4.730000e+08
24 AAPL.US 2009-09-30 NaN NaN NaN NaN ... 8.235000e+09 NaN NaN NaN 8.718000e+09 7.340000e+08
25 AAPL.US 2010-09-30 128514.0 128514.0 2010-10-27 USD ... 1.401300e+10 NaN NaN NaN 1.956700e+10 1.027000e+09
26 AAPL.US 2011-09-30 128453.0 128453.0 2011-10-26 USD ... 2.592200e+10 NaN NaN NaN 3.601900e+10 1.814000e+09
27 AAPL.US 2012-09-30 128450.0 128450.0 2012-10-31 USD ... 4.173300e+10 NaN NaN NaN 5.904000e+10 3.277000e+09
28 AAPL.US 2013-09-30 128413.0 128413.0 2013-10-30 USD ... NaN NaN NaN NaN NaN NaN
29 AAPL.US 2014-09-30 128386.0 128386.0 2014-10-27 USD ... 3.951000e+10 NaN NaN NaN 6.181300e+10 7.946000e+09
30 AAPL.US 2015-09-30 NaN NaN NaN NaN ... 5.339400e+10 NaN NaN NaN 8.450500e+10 1.125700e+10
31 AAPL.US 2016-09-30 128337.0 128337.0 2016-10-26 USD ... 4.568700e+10 NaN NaN NaN 7.333300e+10 1.050500e+10
32 AAPL.US 2017-09-30 128311.0 128311.0 2017-11-03 USD ... 4.835100e+10 NaN NaN 1.015700e+10 7.656900e+10 1.015700e+10
33 AAPL.US 2018-09-30 128288.0 128288.0 2018-11-05 USD ... NaN NaN NaN NaN NaN NaN
34 AAPL.US 2019-09-30 128270.0 128270.0 2019-10-31 USD ... 5.525600e+10 NaN NaN 1.254700e+10 8.186000e+10 1.254700e+10
35 AAPL.US 2020-09-30 219538.0 219538.0 2020-10-30 USD ... 5.741100e+10 NaN NaN 1.105600e+10 8.102000e+10 1.105600e+10
[36 rows x 100 columns]
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]
I need to get rows in my dataframe (using .last_valid_index()), but some of the indices which satisfy the condition are NaN (that's fine, as I may have some empty blocks between the cuts).
df.groupby('cuts').apply(lambda x: x.q1.last_valid_index())
Out[289]:
cuts
(2016-04-29 23:59:59.999999999, 2016-05-14] 13.0
(2016-05-14, 2016-05-28] 19.0
(2016-05-28, 2016-06-11] NaN
(2016-06-11, 2016-06-25] NaN
(2016-06-25, 2016-07-09] NaN
(2016-07-09, 2016-07-23] 75.0
(2016-07-23, 2016-08-06] NaN
(2016-08-06, 2016-08-20] NaN
(2016-08-20, 2016-09-03] NaN
(2016-09-03, 2016-09-17] 138.0
(2016-09-17, 2016-10-01] NaN
(2016-10-01, 2016-10-15] 156.0
(2016-10-15, 2016-10-29] NaN
I need to get rid of NaNs, I tried something like:
df.groupby('cuts').apply(lambda x: x.loc[x.q1.last_valid_index()] if (x.q1.last_valid_index() > 0)
but it didn't work.
I'm sure it should be very simple, but I'm struggling to find a neat solution.
EDIT
df[:50]
Out[305]:
response_date q1 crp ferritin hb q2 plasma platelets transferrin q3 wcc value a1 a2 a3 a4
0 2016-04-27 34.0 6.1 15.3 136.0 NaN 1.0 404.0 27.0 NaN 9.33 NaN NaN NaN NaN NaN
1 2016-04-30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 12.0 0.98 80.0 1.0
2 2016-05-01 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1089.0 NaN NaN NaN NaN
3 2016-05-02 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2016-05-03 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 2016-05-04 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 2016-05-05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 2016-05-06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 2016-05-07 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 2016-05-08 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 2016-05-09 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 2016-05-10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 2016-05-11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 2016-05-12 38.0 1.1 11.1 135.0 4.0 1.0 382.0 18.0 5.0 10.60 NaN NaN NaN NaN NaN
14 2016-05-13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 2016-05-14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 12.0 0.83 80.0 1.0
16 2016-05-15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 2016-05-16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 2016-05-17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 2016-05-18 36.0 8.8 15.6 138.0 NaN NaN 369.0 23.0 NaN 9.78 NaN NaN NaN NaN NaN
20 2016-05-19 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 2016-05-20 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 2016-05-21 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 2016-05-22 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 2016-05-23 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
25 2016-05-24 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
26 2016-05-25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
27 2016-05-26 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 2016-05-27 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
29 2016-05-28 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 14.0 1.60 80.0 1.0
30 2016-05-29 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
31 2016-05-30 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
32 2016-05-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
33 2016-06-01 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
34 2016-06-02 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 802.0 NaN NaN NaN NaN
35 2016-06-03 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
36 2016-06-04 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
37 2016-06-05 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
38 2016-06-06 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
39 2016-06-07 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
40 2016-06-08 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
41 2016-06-09 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
42 2016-06-10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
43 2016-06-11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 13.0 1.40 75.0 1.0
44 2016-06-12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
45 2016-06-13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
46 2016-06-14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
47 2016-06-15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
48 2016-06-16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
49 2016-06-17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
I need to extract data (blood results) between the dates of a1. I'm usind pd.cut, to get blocks between the dates of a1. If you notice, within some block of a1, there are not blood results, so this is how I got NaN previously. I need to get only rows with bloods between the dates of a1. However, there are might be more than one set of bloods between the dates, so this is why I'm taking the last set of results, which is closer to the end of the a1 block.
Here is a datafrmae.
a = pd.DataFrame({'a':np.arange(10)}, index=np.arange(0,20,2))
# then I can create new dataframe and complete the index.
b = pd.DataFrame(index=np.arange(20))
b['a'] = a
# Now convert the index np.arange(0,20,2) to np.arange(20). Fill noexists value by np.nan.
But how can i do the same way to column? Suppose the column's dtype is int32 and names is np.arange(0,20,2).
It seems you need reindex:
print (a.reindex(b.index))
a
0 0.0
1 NaN
2 1.0
3 NaN
4 2.0
5 NaN
6 3.0
7 NaN
8 4.0
9 NaN
10 5.0
11 NaN
12 6.0
13 NaN
14 7.0
15 NaN
16 8.0
17 NaN
18 9.0
19 NaN
Also can reindex columns:
a.columns = [0]
print (a.reindex(index=b.index, columns=np.arange(0,20,2)))
0 2 4 6 8 10 12 14 16 18
0 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 3.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 4.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 5.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 6.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 7.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 8.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN