Pandas DataFrame에 대한 행을 열 헤더로 변환합니다.
제가 작업해야 할 데이터가 좀 지저분합니다.데이터 내부에 헤더 이름이 있습니다.기존 판다 데이터 프레임에서 행을 선택하고 열 헤더로 변경(이름 변경)하려면 어떻게 해야 합니까?
다음과 같은 작업을 수행하고 싶습니다.
header = df[df['old_header_name1'] == 'new_header_name1']
df.columns = header
In [21]: df = pd.DataFrame([(1,2,3), ('foo','bar','baz'), (4,5,6)])
In [22]: df
Out[22]:
0 1 2
0 1 2 3
1 foo bar baz
2 4 5 6
열 레이블을 두 번째 행(색인 위치 1)의 값과 동일하게 설정합니다.
In [23]: df.columns = df.iloc[1]
인덱스에 고유한 레이블이 있는 경우 다음을 사용하여 두 번째 행을 삭제할 수 있습니다.
In [24]: df.drop(df.index[1])
Out[24]:
1 foo bar baz
0 1 2 3
2 4 5 6
인덱스가 고유하지 않은 경우 다음을 사용할 수 있습니다.
In [133]: df.iloc[pd.RangeIndex(len(df)).drop(1)]
Out[133]:
1 foo bar baz
0 1 2 3
2 4 5 6
사용.df.drop(df.index[1])
두 번째 행과 레이블이 같은 모든 행을 제거합니다.고유하지 않은 인덱스는 이러한 장애물(또는 잠재적인 버그)을 초래할 수 있으므로 인덱스가 고유한지 주의하는 것이 좋습니다(판다가 필요하지 않더라도).
이것은 작동합니다(pandas v'0.19).2'):
df.rename(columns=df.iloc[0])
데이터 프레임을 다시 만드는 것이 더 쉬울 것입니다.이렇게 하면 열 유형을 처음부터 해석할 수도 있습니다.
headers = df.iloc[0]
new_df = pd.DataFrame(df.values[1:], columns=headers)
df를 재할당하지 않고 헤더의 이름을 변경하는 방법
df.rename(columns=df.iloc[0], inplace = True)
df를 재할당하지 않고 행을 삭제하는 방법
df.drop(df.index[0], inplace = True)
를 나타내는 매개 변수를 통해 read_csv 또는 read_html 생성자에서 행 인덱스를 지정할 수 있습니다.이렇게 하면 정크 행으로 추정되는 모든 이전 행을 자동으로 삭제할 수 있습니다.
import pandas as pd
from io import StringIO
In[1]
csv = '''junk1, junk2, junk3, junk4, junk5
junk1, junk2, junk3, junk4, junk5
pears, apples, lemons, plums, other
40, 50, 61, 72, 85
'''
df = pd.read_csv(StringIO(csv), header=2)
print(df)
Out[1]
pears apples lemons plums other
0 40 50 61 72 85
단순성 유지 Python
데이터 프레임의 Padas 기능columns
속성 표준 파이썬과 함께 사용하면 무엇을 하고 있는지 훨씬 명확합니다.
table = [['name', 'Rf', 'Rg', 'Rf,skin', 'CRI'],
['testsala.cxf', '86', '95', '92', '87'],
['testsala.cxf: 727037 lm', '86', '95', '92', '87'],
['630.cxf', '18', '8', '11', '18'],
['Huawei stk-lx1.cxf', '86', '96', '88', '83'],
['dedo uv no filtro.cxf', '52', '93', '48', '58']]
import pandas as pd
data = pd.DataFrame(table[1:],columns=table[0])
또는 예를 들어 첫 번째 행이 아니라 10번째 행인 경우:
columns = table.pop(10)
data = pd.DataFrame(table,columns=columns)
언급URL : https://stackoverflow.com/questions/26147180/convert-row-to-column-header-for-pandas-dataframe
'prosource' 카테고리의 다른 글
웹 스트림과 Node.js 스트림 API의 차이점 (0) | 2023.07.02 |
---|---|
유형 스크립트 확장 서드 파티 선언 파일 (0) | 2023.07.02 |
봇코어의 NoSuchKey 예외를 캡처하는 방법은 무엇입니까? (0) | 2023.07.02 |
Git의 작업 디렉터리에 변경 사항을 보관하는 동안 변경 사항을 저장합니다. (0) | 2023.07.02 |
언어에 따라 커스텀 포스트 타입 슬러그를 어떻게 다시 작성할 수 있습니까? (0) | 2023.07.02 |