我正在尝试在pandas df中合并值。我只想在一行中合并第一个和最后一个值。但是必须在其前面加上一个特定的值。
对于下面的df,如果Col A中的值为X,则合并下一个和最后一个值。
import pandas as pd
d = ({
'A' : ['X','','X',''],
'B' : ['A Big','No','Foo','No'],
'C' : ['No','Merge','Bar','Merge'],
'D' : ['Cat','Thanks','','Thanks'],
})
df = pd.DataFrame(data=d)
预期输出:
A B C D
0 X No A Big Cat
1 No Merge Thanks
2 X Foo Bar
3 No Merge Thanks
我尝试过
if df.A == 'X':
df["Com"] = df["B"].map(str) + df["D"]
但是它返回ValueError。
答案 0 :(得分:1)
使用:
picks
Model:Pick
belongs_to:user
belongs_to:match
belongs_to:pool
date:datetime
答案 1 :(得分:0)
您可以尝试遍历数据框:
for value in df:
if value == 'X':
df["Com"] = df["B"].map(str) + df["D"]
print(df)
您得到的值错误是因为Pandas无法基于Series进行检查,而必须检查实际的行本身。