使用回车符和空行连接多个pandas列

时间:2017-10-29 16:57:16

标签: python string pandas

我试图在pandas DataFrame中连接多个列,所有字符串;形成一个新的专栏。我正在使用.str.cat,以便我可以在列之间包含一个回车来连接。

但是,如果一行中的任何列为空或NaN,我会将NaN作为该行的完整结果。

我看过选项,第三个答案看起来很有趣: pandas combine two strings ignore nan values

但是我看不到将其扩展到>的方法。 2列,但仍然不是DataFrame的所有列,这是必需的。

前两个答案不允许添加回车,这也是必需的。

这是我的代码:

mydf['Address'] = mydf['full name'].str.cat(mydf['Delivery address 1'], sep ='\n').str.cat(mydf['Delivery address 2'], sep ='\n').str.cat(mydf['Delivery city'], sep ='\n').str.cat(mydf['Delivery state'], sep ='\n').str.cat(mydf['Delivery postcode'], sep ='\n')

对于任何字段为空的行,会导致空白 mydf ['Address']

我的代码或方法有什么错误?

2 个答案:

答案 0 :(得分:1)

我认为您需要apply axis=1 NaN来处理dropna行以删除#columns for join cols = ['full name','Delivery address 1','Delivery address 2', 'Delivery city','Delivery state','Delivery postcode'] mydf['Address'] = mydf[cols].apply(lambda x: '\n'.join(x.dropna()), axis=1) s:

mydf['Address'] = mydf[cols].apply(lambda x: '\n'.join(x.dropna().astype(str)), axis=1)

如果某些列是数字:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="TheBestCatPics from Google search first page" Height="350" Width="525">
    <Grid>
        <TreeView HorizontalAlignment="Left" Height="299"
                  SelectedItemChanged="myTreeView_SelectedItemChanged"

                  Margin="10,10,0,0" VerticalAlignment="Top" Width="93">
            <TreeViewItem Header="1" />
            <TreeViewItem Header="2"/>
        </TreeView>


    </Grid>
</Window>

答案 1 :(得分:0)

这绝对不是最有效的方式来做你所要求的,但你总是可以循环遍历数据库的行并将所有字符串连接在一起。这是一些伪代码

for row in your_database:
    your_database[new_column] = "\n".join([list of columns you want])