【问题标题】:Conditional concatenation on multiple columns in PythonPython中多列的条件连接
【发布时间】:2021-09-10 01:35:26
【问题描述】:

我有一个名为 IND_Split 的数据框:

    0   1   2   3   4   5   6
0   TY  50                  
1   TY  XT  50              
2   TY  100                 
3   TY  200                 
4   TY  500     

        

我想要什么: 根据条件获得连接的单列 - “如果下一列中的值不为空,则与 “%20” 连接,否则不要连接下一列”

所需的输出必须如下所示:

    0                       
0   TY%2050                 
1   TY%20XT%2050                
2   TY%20100                    
3   TY%20200                    
4   TY%20500

我尝试过的:

IND_Concat = IND_Split[0] + "%20" if IND_Split[1]!='' else ''.....
IND_Concat.head()

我得到的输出:

【问题讨论】:

  • 看看这个:stackoverflow.com/a/36911306/3376059 我想这正是你要找的。​​span>
  • 以上建议的方法对我不起作用!我需要有条件地输入“%20”。建议方法的输出:例如:TY%2050%20%20%20%20%20 如您所见,它不必要地为第 3 列到第 6 列添加 %20,这正是我不想要的!

标签: python dataframe conditional-statements


【解决方案1】:

试试:

df_out = df.apply(
    lambda x: "%20".join([v for v in x if str(v).strip()]), axis=1
).to_frame()
print(df_out)

打印:

              0
0       TY%2050
1  TY%20XT%2050
2      TY%20100
3      TY%20200
4      TY%20500

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2020-11-07
    • 2021-04-03
    • 2021-02-15
    • 2021-06-11
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多