首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pandas中的行移动(Total Beginner)

使用pandas中的行移动(Total Beginner)
EN

Stack Overflow用户
提问于 2021-11-18 08:13:12
回答 1查看 16关注 0票数 0

我是python和pandas库的新手。例如,我有12000行和3列:

代码语言:javascript
复制
A           B          C
Husband     Test1      $1200
Kids        Test1      $1288
Wife        Test1      $1232
Cousin      Test1      $3265

预期结果:

代码语言:javascript
复制
A           B          C
Husband     Test1      $1200
Wife        Test1      $1232 
Kids        Test1      $1288
Cousin      Test1      $3265

代码语言:javascript
复制
A           B          C
Husband     Test2      $1200
Kids        Test2      $1288
Cousin      Test2      $3265
Wife        Test2      $1232

预期结果:

代码语言:javascript
复制
A           B          C
Husband     Test2      $1200
Wife        Test2      $1232 
Kids        Test2      $1288
Cousin      Test2      $3265

因此,只要我看到“妻子”这个词,我就希望整个行移到“丈夫”下面。我已经使用了上面的两个例子。这是我到目前为止所拥有的

代码语言:javascript
复制
import pandas as pd
df = pd.read_csv("Test.csv")

df1=pd.DataFrame()

df1 = df.append(df[df["Relationship"] == "Husband"])

df1 = df.append(df[df["Relationship"] == "Wife"])

df1 = df.append(df[df["Relationship"] == "Kids"])

df1 = df.append(df[df["Relationship"] == "Cousin"])

print(df1)
EN

回答 1

Stack Overflow用户

发布于 2021-11-18 08:16:21

对列A的指定自定义顺序使用有序的类别,以便DataFrame.sort_values获得指定的顺序:

代码语言:javascript
复制
 df = pd.read_csv("Test.csv")

df['A'] = pd.Categorical(df.A, ordered=True, categories=['Husband','Wife','Kids','Cousin'])

df = df.sort_values(['B','A'], ignore_index=True)
print (df)
         A      B      C
0  Husband  Test1  $1200
1     Wife  Test1  $1232
2     Kids  Test1  $1288
3   Cousin  Test1  $3265
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70016479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档