You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python单个DataFrame列合并操作求助

How to Merge Columns in a Pandas DataFrame (Two Common Scenarios)

Hey there! Let's work through your two column merging questions step by step—since you're still learning, I'll use a sample fake DataFrame and keep the examples straightforward.

First, let's set up a mock DataFrame that matches the structure you mentioned:

import pandas as pd

# Sample fake DataFrame
df = pd.DataFrame({
    'Name': ['Alice', None, 'Charlie', 'David'],
    'Name2': [None, 'Bob', None, 'Dave'],
    'LastName': ['Smith', 'Johnson', 'Brown', 'Wilson']
})

1. Merge Name and Name2 into a single new Name column

Great question about joins—you don't need a left/inner join here! Joins are for combining rows from different DataFrames based on shared keys. For merging columns within the same row of a single DataFrame, we use simpler methods depending on what you want:

Scenario A: Fill missing values (prioritize Name, use Name2 as fallback)

If your goal is to have a single Name column where we take the value from Name if it exists, and use Name2 only when Name is missing, use either combine_first or fillna:

# Option 1: Combine with priority on Name
df['Name'] = df['Name'].combine_first(df['Name2'])

# Option 2: Same result using fillna
df['Name'] = df['Name'].fillna(df['Name2'])

After running this, your Name column will be: ['Alice', 'Bob', 'Charlie', 'David'] (swap the column order if you want to prioritize Name2 instead).

Scenario B: Concatenate both columns into one string

If you want to join the text from Name and Name2 into a single string (e.g., combining "David" and "Dave" into "David Dave"), use string concatenation or str.cat:

# Option 1: Basic string concatenation (fill NaNs with empty strings first)
df['Name'] = df['Name'].fillna('') + ' ' + df['Name2'].fillna('')

# Option 2: Use str.cat for cleaner missing value handling
df['Name'] = df['Name'].str.cat(df['Name2'], sep=' ', na_rep='')

# Optional: Trim extra spaces from results
df['Name'] = df['Name'].str.strip()

This would give you: ['Alice', 'Bob', 'Charlie', 'David Dave']


2. Merge LastName with the updated Name column

To combine these two columns into a full name, just concatenate them with a separator (like a space or comma). We'll handle missing values to avoid messy results:

# Option 1: Format as "LastName, Name"
df['FullName'] = df['LastName'] + ', ' + df['Name']

# Option 2: Format as "Name LastName"
df['FullName'] = df['Name'] + ' ' + df['LastName']

# Safe version with missing value handling
df['FullName'] = df['LastName'].fillna('') + ' ' + df['Name'].fillna('')
df['FullName'] = df['FullName'].str.strip() # Remove leading/trailing spaces

For our sample DataFrame, Option 2 would produce: ['Alice Smith', 'Bob Johnson', 'Charlie Brown', 'David Wilson']


Don't hesitate to tweak these examples if you have specific formatting rules (like hyphenating names, handling special cases) or if your actual DataFrame has edge cases I didn't cover—happy to help further!

内容的提问来源于stack exchange,提问作者Yun Tae Hwang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:08:25