gpt4 book ai didi

python - 如何按列提取pd行,并向左移动2列

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:49 24 4
gpt4 key购买 nike

我有一个 csv,currentData.csv,是通过运行脚本生成的:

| first | last | isStudent | height_in | weight_lbs | age  | favColor | 
| Jane | Doe | 21 | red | True | 62 | 146.3 |
| John | Doe | 19 | blue | False | 59 | 162.2 |

我的脚本在错误的位置添加了 2 个列名称,因此您可以看到行中的 firstNamelastName 值是有意义的。但过去他们就没有了。当前位于 isStudentheight_in 列下的所有行中的值需要删除并附加到列的末尾,然后是 weight_lbs 中的值> 列及之后的列将左移 2 列,将列名称保留在原来的位置。

以下是 csv idealData.csv 的样子:

| first | last | isStudent | height_in | weight_lbs | age | favColor | 
| Jane | Doe | True | 62 | 146.3 | 21 | red |
| John | Doe | False | 59 | 162.2 | 19 | blue |

我通过执行以下操作修复了 Excel 中的 currentData.csv(遇到了我的 dtaset > 100 万行的问题):

1) 仅对于 isStudentheight_in 列,复制除第一行中的单元格之外的所有行的单元格(因为这些是列名称)并将其附加到列 favColorcurrentData.csv 现在看起来像这样:

| first | last | isStudent | height_in | weight_lbs | age  | favColor |  
| Jane | Doe | | | True | 62 | 146.3 | 21 | red |
| John | Doe | | | False | 59 | 162.2 | 19 | blue |

2) 然后从 weight_lbs 列开始,对于除第一行(带有列名称的行)之外的所有行,将所有列中的值向左移动 2。

我一直在尝试用 pandas 来做到这一点,到目前为止已经做到了,但我一直坚持如何获取除第一行(标题行)之外的所有行以及如何将单元格向左移动 2 列。

import pandas as pd
df = pd.read_csv("currentData.csv")
df_2_bad_cols = df[['isStudent','height_in']]

#get all rows except first one for df_2_bad_cols
#append at end of favColor col in df
#shift all rows except first to the left by 2 cols starting at weight_lbs col

最佳答案

如果我正确理解你的问题,你就不能从头开始并从头开始制作 DataFrame。从糟糕的结果开始,您不想移动 DataFrame 中的任何数据元素,您只想重命名列。

试试这个:

df.columns = ["first", "last", "age", "favColor", "height_in", "weight_lbs"]

然后,要获得正确的顺序,请运行以下命令:

df = df[["first", "last", "height_in", "weight_lbs", "age", "favColor"]]

关于python - 如何按列提取pd行,并向左移动2列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com