我可以用几个不同的列复制一行吗?python

2024-09-27 21:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要你的帮助我正在寻找的是从上表开始获得下表。我试过各种各样的方法,但都不管用

Date   ID     Typol   Facial#1   Facial#2

abril  426     COR      1000        500
Date   ID     Typol   Facial

abril  426     COR      1000  
abril  426     LAR      500  

如果Typol为COR,则使用Facial#1值y复制de column Typol different(一个正值)的行,并使用de Facial#2复制de Facial column


Tags: 方法iddatedecolumndifferentfacialcor
2条回答

非常简单,创建2个df,每个df有一个面部柱,然后是concat

代码:

df1 = df[['Date','ID','Typol','Facial#1']]
df1.rename(columns = {"Facial#1": "Facial"}, inplace = True)

df2 = df[['Date','ID','Typol','Facial#2']]
df2.rename(columns = {"Facial#2": "Facial"}, inplace = True)

df_final = pd.concat([df1,df2])

第2版:

< P><强>重复行,移动面部2至面部1,也考虑Typol值< /强>

c = ['Date','ID','Typol','Facial#1','Facial#2']
d = [['abril',426,'COR',1000,500],
     ['test1',537,'LAR',1500,750]]
import pandas as pd
df = pd.DataFrame(d,columns=c)

df['Typol_X'] = df['Typol']
df.loc[(df['Typol'] == 'COR'), 'Typol_X'] = 'LAR'
df.loc[(df['Typol'] == 'LAR') & (df['Typol_X'] == 'LAR'), 'Typol_X'] = 'COR'

print (df)

df = df.loc[df.index.repeat(2)]
df.iloc[1::2,3] = df.iloc[::2,4]
df.iloc[1::2,2] = df.iloc[::2,5]
df.drop(['Facial#2','Typol_X'], axis=1,inplace=True)
df.reset_index(drop=True, inplace=True)
print (df)

其输出将为:

原始数据帧:

    Date   ID Typol  Facial#1  Facial#2 Typol_X
0  abril  426   COR      1000       500     LAR
1  test1  537   LAR      1500       750     COR

更新的数据帧:

    Date   ID Typol  Facial#1
0  abril  426   COR      1000
1  abril  426   LAR       500
2  test1  537   LAR      1500
3  test1  537   COR       750

第1版:

复制行,将面部2移动到面部1

另一种方法如下:

c = ['Date','ID','Typol','Facial#1','Facial#2']
d = [['abril',426,'COR',1000,500],
     ['test1',537,'DPS',1500,750]]
import pandas as pd
df = pd.DataFrame(d,columns=c)

df = df.loc[df.index.repeat(2)]
df.iloc[1::2,3] = df.iloc[::2,4]
df.drop(['Facial#2'], axis=1,inplace=True)
df.reset_index(drop=True, inplace=True)
print (df)

其输出将为:

原始数据帧:

    Date   ID Typol  Facial#1  Facial#2
0  abril  426   COR      1000       500
1  test1  537   DPS      1500       750

更新的数据帧:

    Date   ID Typol  Facial#1
0  abril  426   COR      1000
1  abril  426   COR       500
2  test1  537   DPS      1500
3  test1  537   DPS       750

相关问题 更多 >

    热门问题