gpt4 book ai didi

python - 如何修改函数中的 pandas DataFrame 以便调用者看到更改?

转载 作者:太空狗 更新时间:2023-10-30 00:06:14 25 4
gpt4 key购买 nike

我发现自己对各种 [pandas][1] DataFrames 重复执行任务,所以我创建了一个函数来进行处理。如何修改函数 process_df(df) 中的 df 以便调用者看到所有更改(无需分配返回值)?

代码的简化版本:

def process_df(df):
df.columns = map(str.lower, df.columns)

df = pd.DataFrame({'A': [1], 'B': [2]})
process_df(df)
print df
   A  B 
0 1 2

编辑新代码:

def process_df(df):
df = df.loc[:, 'A']

df = pd.DataFrame({'A': [1], 'B': [2]})
process_df(df)
print df
   A  B 
0 1 2

最佳答案

使用 ixlociloc 等索引 DataFrame 返回底层数据的 View (这是一个读操作)。为了修改框架的内容,您需要使用就地转换。例如,

def process_df(df):
# drop all columns except for A
df.drop(df.columns[df.columns != 'A'], axis=1, inplace=True)

df = DataFrame({'A':[1,2,3], 'B':[1,2,3]})
process_df(df)

要改变列的顺序,你可以这样做:

def process_df(df):
# swap A and B
df.columns = ['B', 'A']
df[['B', 'A']] = df[['A', 'B']]

关于python - 如何修改函数中的 pandas DataFrame 以便调用者看到更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145472/

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