Python 熊猫将行拆分为多行

Python 熊猫将行拆分为多行,python,pandas,numpy,Python,Pandas,Numpy,下面考虑一个数据帧,其标题和一行作为输入。。输入行需要根据值之间的间距分为两行,或者第二个值需要转到第二行。。所以在输出中,我们需要两行 输入1: Age Gender Coverage-Status Total-Paid Benefit-Date Outstanding-Reserve Waiver-Reserve Coverage-Code 31 26 M F AC CC 10,000 2/15/2011 NaN

下面考虑一个数据帧,其标题和一行作为输入。。输入行需要根据值之间的间距分为两行,或者第二个值需要转到第二行。。所以在输出中,我们需要两行

输入1:

 Age  Gender Coverage-Status Total-Paid Benefit-Date Outstanding-Reserve Waiver-Reserve Coverage-Code
 31 26  M F    AC CC           10,000     2/15/2011      NaN                4,743         081 010 
所需输出:

Age Gender Coverage-Status Total-Paid Benefit-Date Outstanding-Reserve Waiver-Reserve Coverage Code
31   M     AC              10,000     2/15/2011      NaN                4,743         081 
26   F     CC                                                                         010
我现在被困在这里,这可能吗

我正在尝试这样的事情:

ad['Age'] = ad.Age.str.split(expand = True).stack()

但这一条似乎不起作用…

对不起,没有足够的评论点。您可以先按列拆分dataframe,然后拆分列具有重复项的行,然后重新连接到保存的dataframe,即

input1_a = input1[['Total-Paid', 'Benefit-Date', 'Outstanding-Reserve', 'Waiver-Reserve']].copy()
input1_b = input1[['Age', 'Gender' ,'Coverage-Status','Coverage-Code']].copy()
Yatu删除了前面的答案,但是这里有一个函数可以拆分多个列。邹伟林于2018年9月6日发表评论。不像Yatu的解决方案那么优雅但是

然后

然后重新排列列

input1_new = input1_new[['Age', 'Gender' ,'Coverage-Status','Total-Paid', 'Benefit-Date', 'Outstanding-Reserve', 'Waiver-Reserve', 'Coverage-Code']]
尝试:

#只对要拆分的列进行迭代-我假设它是所有列
对于df.列中的列:
df[col]=df[col].str.split(“”)
res=df.stack().explode().reset_index(level=0,drop=True)。to_frame()
res[“id”]=res.groupby(level=0).cumcount()
res=res.set\u索引(“id”,append=True)。取消堆栈(级别=0)
res.columns=res.columns.droplevel()
产出:

年龄福利日期保险范围代码保险范围状态性别未付准备金\
身份证件
0 31 2/15/2011 081 AC M NaN
126NAN 010立方英尺NaN
已缴弃权准备金总额
身份证件
0   10,000     4,743
1楠楠楠
input1_new = input1_new[['Age', 'Gender' ,'Coverage-Status','Total-Paid', 'Benefit-Date', 'Outstanding-Reserve', 'Waiver-Reserve', 'Coverage-Code']]