카테고리 없음
[파이썬] 열 비교 pandas python
행복을전해요
2021. 2. 25. 10:36
코드의 문제 는 booleans 를 df[3] > df[1]
반환 pandas.Series
하고 메시지에 The truth value of a Series is ambiguous
.
이 시도:
df[6] = df[0] #sets default value
df.loc[df[3]>df[1],6] = df[2] #change when second wins
그런 다음 print df
또는 print df[6]
.
또한 읽기 부분을 더 쉽게 할 수 있습니다. df = read_csv('games.csv', delim_whitespace=True,header=None)
기본적으로 부울 df["home"] > df["guest"]
이 벡터 라는 점을 기억해야합니다. 이를 활용하여 벡터가있는 각 행에 홈 팀 이름을 할당 할 수 있습니다 True
. 다음과 같이 시도해 볼 수 있습니다.
일부 데이터 시뮬레이션 :
In [22]: df = pandas.DataFrame({"home":[10,13,7,24,17],
"guest":[13, 7, 7, 30, 17],
"home_name":list("ABCDE"),
"guest_name":list("abcde")})
새 열을 만들고 게스트 점수가 홈 점수보다 큰 각 행에 게스트 이름을 할당합니다 ( "승자"열의 다른 행은 첫 번째 할당 후 NaN이되고 점진적으로 채워집니다). :
In [23]: df.loc[df["guest"]>df["home"], "winner"] = df["guest_name"]
In [24]: df.loc[df["guest"]<df["home"], "winner"] = df["home_name"]
In [25]: df.loc[df["guest"]==df["home"], "winner"] = "tie"
In [26]: df
Out[26]:
home_name guest_name home guest winner
0 A a 10 13 a
1 B b 13 7 B
2 C c 7 7 tie
3 D d 24 30 d
4 E e 17 17 tie
-------------------csv 파일을 처리하는 방법에 대한 예
ifile = open('myinputfile', 'rb')
infile = csv.DictReader(ifile)
for row in infile:
process-row(row)
infile의 각 행을 반복해야합니다. 마찬가지로 df는 파일 행 집합이며 열을 비교하기 위해 각 행을 가져 오려면 반복해야합니다.
출처
https://stackoverflow.com/questions/22080111