我目前正在研究从pdf导入的pandas df。该数据框仅包含2列和大约15000行。我需要对第一个行的df升序进行排序,然后将该行的较低值减去同一行的所有其他值。第一个问题是我无法正确排序数据框... 当然,我在网络和stackoverflow上搜索了答案,当然,我还阅读了有关正在使用的功能的熊猫信息。这是我的代码:
import pandas as pd
import numpy as np
#import data
dataframe=pd.read_csv('time_and_followers_2.csv', index_col=None)
dataframe.timestamps = dataframe.timestamps.astype(int)
#sort data by first column and get informations needed
sorted_df=dataframe.sort_values(by=['timestamps'])
init_time=sorted_df.at[0,'timestamps']
total_rows = sorted_df.shape[0]
#retrieve initial time to all first column data
sorted_df['timestamps']= sorted_df['timestamps']-init_time
sorted_df.loc[-1] = [init_time,total_rows] # adding a row
sorted_df.to_csv('time_and_followers_2_sorted.csv', header=False, index=False)
这是csv文件的第一行:
timestamps,followers
1531137667.0,336
1531137650.0,189
1531137638.0,227
1531137617.0,58
1531137616.0,3314
任何帮助将不胜感激...
答案 0 :(得分:-1)
我设法解决了我的问题!似乎df排序正确。问题是,当我尝试访问数据集的第一个元素以将该元素减至同一列的所有其他元素时:由于索引未更改,因此我正在访问除最小元素之外的另一个元素。一个简单的reset_index()
之后,我就被救出了。