나는 csv 파일을 읽고이 파일을 pandas 데이터 프레임에 저장하려고합니다. 그 후 하나의 열 값이 상수 변수와 같고 동등한 행이 별도의 데이터 프레임에 보관되어야하는지 확인하고 싶습니다.파이썬에서 팬더 데이터 프레임의 특정 열에있는 모든 행을 업데이트하는 방법은 무엇입니까?
다음 단계는 별도의 데이터 프레임에서 하나의 열을 업데이트하는 것입니다. 이 단계에서는 전체 데이터 프레임을 반복하고 특정 열의 모든 행을 업데이트하므로 데이터 프레임에 수천 개의 행이 있으므로 너무 많은 시간이 걸립니다.
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