如何修改pandas代码使拼接后的数据展示在同一列中
问题原因
原代码使用pd.concat拼接时,第一个参数是带有Identifier列的DataFrame,第二个参数是无匹配列名的Series,两者列结构不匹配,拼接后会生成两列并用NaN填充缺失的位置,和预期效果不符。
修改方案
将截取得到的字符串序列转换为列名和原列一致的DataFrame后再拼接即可,修改后的完整代码如下:
import pandas as pd data = {'Identifier': ['55555-abc','77777-xyz','99999-mmm']} df = pd.DataFrame(data, columns=['Identifier']) left = df['Identifier'].str[:5] union = pd.concat([df, left.to_frame(name='Identifier')], ignore_index=True) print(union)
也可以用更简洁的写法,直接拼接两个序列后转换为DataFrame:
import pandas as pd data = {'Identifier': ['55555-abc','77777-xyz','99999-mmm']} df = pd.DataFrame(data, columns=['Identifier']) union = pd.concat([df['Identifier'], df['Identifier'].str[:5]], ignore_index=True).to_frame(name='Identifier') print(union)
两种写法运行后都会输出你需要的单列结果。
内容的提问来源于stack exchange,提问作者Tristan Xin
相关产品推荐
相关产品推荐

