gpt4 book ai didi

python-2.7 - Pandas 将列表附加到列名列表

转载 作者:行者123 更新时间:2023-12-02 00:58:58 24 4
gpt4 key购买 nike

我正在寻找一种方法,将列名列表附加到 pandas 中 DataFrame 中的现有列名,然后通过 col_start + 重新排序它们col_add.

DataFrame 已包含 col_start 中的列。

类似于:

import pandas as pd

df = pd.read_csv(file.csv)

col_start = ["col_a", "col_b", "col_c"]
col_add = ["Col_d", "Col_e", "Col_f"]
df = pd.concat([df,pd.DataFrame(columns = list(col_add))]) #Add columns
df = df[[col_start.extend(col_add)]] #Rearrange columns

此外,有没有办法将 col_start 中每个项目的首字母大写,类似于 title()capitalize()

最佳答案

您的代码就快完成了,还有几件事:

df = pd.concat([df,pd.DataFrame(columns = list(col_add))])

可以简化为这样,因为 col_add 已经是一个列表:

df = pd.concat([df,pd.DataFrame(columns = col_add)])

您也可以将 2 个列表加在一起,这样:

df = df[[col_start.extend(col_add)]]

成为

df = df[col_start+col_add]

要将列表中的第一个字母大写,只需执行以下操作:

In [184]:
col_start = ["col_a", "col_b", "col_c"]
col_start = [x.title() for x in col_start]
col_start

Out[184]:
['Col_A', 'Col_B', 'Col_C']

编辑

为了避免大写列名的KeyError,你需要在调用concat后大写,列有一个向量化的str 标题方法:

In [187]:
df = pd.DataFrame(columns = col_start + col_add)
df

Out[187]:
Empty DataFrame
Columns: [col_a, col_b, col_c, Col_d, Col_e, Col_f]
Index: []

In [188]:
df.columns = df.columns.str.title()
df.columns

Out[188]:
Index(['Col_A', 'Col_B', 'Col_C', 'Col_D', 'Col_E', 'Col_F'], dtype='object')

关于python-2.7 - Pandas 将列表附加到列名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934126/

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