我正在完成我的数据科学项目,并希望使用get_dummies pandas库合并数据
我的df:
0_A 0_B 0_C 1_A 1_B 1_C
0 1 0 0 0 1 0
1 0 1 0 1 0 0
2 0 1 0 0 0 1
输出:
A B C
0 1 1 0
1 1 1 0
2 0 1 1
尝试使用if语句但没有运气
问候 赛夫
答案 0 :(得分:0)
df = pd.DataFrame(data={"0_A":[0,1,1],
"0_B":[1,0,0],
"0_C":[0,1,1],
"1_A":[0,0,0],
"1_B":[0,1,0],
"1_C":[0,0,1]})
final_df = pd.DataFrame(columns=["A","B","C"])
for i in final_df:
final_df[i] = (df[df.columns[df.columns.str.contains(i)]].max(axis=1))
print(final_df)
A B C
0 1 1 0
1 1 1 0
2 0 1 1
答案 1 :(得分:0)
您可以在列之间使用按位或,如下所示:
import pandas as pd
from io import StringIO
df = pd.read_csv(StringIO("""
0_A 0_B 0_C 1_A 1_B 1_C
0 1 0 0 0 1 0
1 0 1 0 1 0 0
2 0 1 0 0 0 1 """), sep=r"\s+")
df["A"] = df["0_A"] | df["1_A"]
df["B"] = df["0_B"] | df["1_B"]
df["C"] = df["0_C"] | df["1_C"]
df = df[["A", "B", "C"]]
print(df)
输出:
A B C
0 1 1 0
1 1 1 0
2 0 1 1