Python 熊猫将行拆分为多行
下面考虑一个数据帧,其标题和一行作为输入。。输入行需要根据值之间的间距分为两行,或者第二个值需要转到第二行。。所以在输出中,我们需要两行 输入1: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
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']]