Python熊猫:连接包含null的熊猫字符串

Python熊猫:连接包含null的熊猫字符串,python,string,pandas,Python,String,Pandas,我正在尝试连接包含空值的多个字符串列。但结果并没有显示连接的字符串,而只是显示第一列。如何忽略包含null的值?我试图通过替换nan值来处理这个问题,但这没有帮助 import pandas as pd import numpy as np df = pd.DataFrame({'Addr1':['a','b','c'], 'Addr2':['', 'x', np.nan], 'Addr3':['202', '201', '203']}) df1 = pd.DataFrame([]) df1['

我正在尝试连接包含空值的多个字符串列。但结果并没有显示连接的字符串,而只是显示第一列。如何忽略包含null的值?我试图通过替换nan值来处理这个问题,但这没有帮助

import pandas as pd
import numpy as np
df = pd.DataFrame({'Addr1':['a','b','c'], 'Addr2':['', 'x', np.nan], 'Addr3':['202', '201', '203']})
df1 = pd.DataFrame([])
df1['patient address'] = df['Addr1'].astype(str).fillna('',) + " " 
+ df['Addr2'].astype(str).fillna('') + " " 
+ df['Addr3'].astype(str).fillna('') 
print(df1)
预期产出:

      patient address
0              a 202
1              b x 201
2              c 203
groupby+agg
.join
level=0
上,默认情况下
stack()
会删除
NaN

df1['patient address'] = df.stack().groupby(level=0).agg(' '.join)

将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame(
{
“地址1”:[“a”、“b”、“c”],
“Addr2”:[“”,“x”,np.nan],
“地址3”:[“202”、“201”、“203”],
}
)
df1=pd.DataFrame(
{
“患者地址”:df[[“地址1”、“地址2”、“地址3”]]
.fillna(“”)
.agg(“.join,axis=1)
}
)
打印(df1)
输出:

患者地址
0 a 202
1b x 201
2 c 203

谢谢,我的大数据框中还有其他列,我不想连接这些列。你能演示一下如何在你的列表中添加列名吗code@PriyankaJ在
.stack..
df[['col1','col2'…]]之前,只需选择您感兴趣的列。stack()…
stack和groupby已经成为我这些天几乎所有争论中的标准方法之一。多才多艺。谢谢你调查我的问题。我看到您已经从dict创建了数据帧,这可能是由于输出的差异造成的。尽管如此,我不希望nan出现在输出中。下面的stack方法对我来说很好。@PriyankaJ我看到您已经从dict创建了数据帧,可能是由于输出的不同。事实并非如此_然而,我不希望输出中出现nan——是的,我不敢相信我错过了。我修好了,如果你想看一看,我觉得稍微干净一点。性能也可能更好。
.astype(str).fillna(“”)
-->
.fillna(“”).astype(str)
。我投票决定以打字错误/无法复制的方式结束这篇文章,因为它太小了。
0     a  202
1    b x 201
2      c 203
dtype: object