我想讀取一個csv文件並將此文件存儲在pandas數據框中,之後我想檢查一列值是否等於常量變量,並且相同的行應保存在單獨的數據框中。如何更新python中熊貓數據框的特定列中的所有行?
下一步是從單獨的數據框中更新一列。在這一步中,我遍歷整個數據框並更新特定列的所有行,所以它會花費太多時間,因爲我的數據框有成千上萬行。
Input.csv-
line_no,time
205,1467099122677889
205,1467099122677889
206,1467099363719028
207,1467099363818373
207,1467099363918360
208,1467099363818373
210,1467099363958749
計劃 -
import pandas as pd
if __name__ == "__main__":
file_path = 'Input.csv'
input_line_no = 205
pd_dataframe = pd.read_csv(file_path,delimiter=',',keep_default_na=False)
match_df = pd.DataFrame(pd_dataframe.loc[pd_dataframe['line_no'] == int(input_line_no)])
if match_df.empty:
print 'Given line no is not present in dataframe.'
sys.exit(1)
match_df = match_df.applymap(str)
for index in range(0,len(match_df.index)):
epoch_time = match_df.iloc[index]['time']
stamp = int(str(epoch_time)+'0')
date = datetime.datetime.fromtimestamp(stamp/10000000.0).strftime('%H:%M:%S %f')[:-3]
match_df['time'].apply(str)
match_df.iloc[index]['time'] = date
print match_df.to_csv(index=False)
此時間列是在信號出現時間我想將其轉換成所述人類可讀的時間戳,以便邏輯是針對僅用於目的。
但是我面臨着這個任務的執行時間問題。 有更快的方式更新現有數據框的列嗎?
如果使用'日期= datetime.datetime.fromtimestamp(蓋章/ 10000000.0)'它返回'2434年11月27日04:20:26.778889'。這樣對嗎?或者它是'2016-06-28 07:32:02'? – jezrael
@jezrael - 是的,這是正確的,不用擔心。我只想知道如何減少數據幀更新列的執行時間? – kit