2016-09-09 17 views
1

데이터 예 :연결할 값 파이썬 3.5

이 나 2 열 "A"및 "B"와 dataframe 제공
import pandas as pd 
df=pd.DataFrame({"A":["x","y","z","t","f"], 
       "B":[1,2,1,2,4]}) 

. 그런 다음 "A"와 "B"의 값을 포함하고 "_"로 구분 된 세 번째 열 "C"를 추가하려고합니다.
this answer에서 제안한 내용대로이 작업을 수행 할 수 있습니다.

for i in range(0,len(df["A"])): 
    df.loc[i,"C"]=df.loc[i,"A"]+"_"+str(df.loc[i,"B"]) 

내가 원하는 결과를 얻지 만, 그렇게 간단한 작업으로 복잡하게 보입니다.

은 R에서 이것은 다음과 같이 할 것입니다 :

df<-data.frame(A=c("x","y","z","t","f"), 
       B=c(1,2,1,2,4)) 
df$C<-paste(df$A,df$B,sep="_") 

또 다른 thread는 "%"연산자의 사용을 제안하지만, 나는 그것이 동작하지 않습니다.

더 좋은 방법이 있습니까?

답변

2

당신은 함께 열을 추가 할 수 있지만 'B'당신은 astype(str)를 사용하여 형식을 캐스팅해야합니다

In [115]: 
df['C'] = df['A'] + '_' + df['B'].astype(str) 
df 

Out[115]: 
    A B C 
0 x 1 x_1 
1 y 2 y_2 
2 z 1 z_1 
3 t 2 t_2 
4 f 4 f_4 

이는 벡터화 접근하고 큰 DFS의 모든 행에 걸쳐 반복보다 훨씬 더 확장 할 수

+0

내 시도에는'df [ "C"] = df [ "A] +"_ "+ str (df ["B "])'가 포함되지 않았습니다.".astype (str) " 그것은 내 문제를 해결합니다. – Haboryme

+2

'str (df [ 'B'])'는 문자열의'repr'을 만들어서 형식을 변경하지 않습니다. – EdChum

관련 문제