I am trying to learn python now for 2 full weeks. I am encountering a problem witch I can not solve. It's seems very easy to do when I see examples on the internet. Despite that I can't get it done.
I am trying to get information from the wind speed (column: 5) and by using it's wind station number (column:0).
I am already capable of reading the text file and print it:
import pandas as pd
## data
os.chdir('C:\\Users\\########\\sensoren\\data')
os.getcwd()
wind = pd.read_csv('weerdata_299_235_242_251_267_277.txt', usecols= [0 ,5 ],skiprows = 33, names = ['STN','FF'])
print(wind)
giving the following results:
STN FF
0 229 60
1 229 60
2 229 60
3 229 60
4 229 30
... ...
62779 277 50
62780 277 50
62781 277 50
62782 277 60
62783 277 50
Now I want to get only the data of the rows that contain STN:277 . Where I used this code for:
wind_277 = wind[wind['STN'] == '277']
print(wind_277)
Which gives this result:
Empty DataFrame
Columns: [STN, FF]
Index: []
I do not understand why this DataFrame is empty. Can anyone help me with this?
CodePudding user response:
My guess is that it is because the column STN are integers. Check the data types by.
print(wind.dtypes)
if it is integers then remove the string note on 277.
wind_277 = wind[wind['STN'] == 277]
But maybe it is a string such as '277 ', that has trailing spaces. In this situation you need to remove the spaces.
wind['STN'] = wind['STN'].str.strip()