【发布时间】:2021-04-23 18:53:51
【问题描述】:
我有多个时间序列数据框,我必须不断地做同样的事情,例如: 命名列、删除列、添加列、对列执行操作、对列执行 numpy.select 操作、删除列(最近我一直在使用第二个数据框和现在不需要的列)。
我是否可以创建一个函数来执行这些操作,而无需继续复制和粘贴代码来准备好我的数据?
略伪代码示例:
清洁
cols = ['date','open','high','low','close','volume']
df = pd.read_csv('data.csv',sep='\t',names=cols)
dcol=['volume']
df.drop(dcol,axis=1,inplace=True)
多个
df.insert(loc=5,column='name1',value=(df['operation']-df['operation']))
第二个df(用于隐藏主df的值)
df2 = df.copy()
同样,这些中的多个
df2.insert(loc=6,column='name2',value=(df['operation']-df['operation']))
使用 numpy 从 df2 中选择值以将它们插入到主 df 中
import numpy as np
conditions = [(cond1),(cond2)]
values1 = [(value1),(value2)]
values2 = [(value1),(value2)]
values3 = [(value1),(value2)]
# and finally three of these
df['randomname'] = np.select(conditions,values1)
那么,有没有一种快速的方法来做到这一点?或者我只需要靠自己的力量振作起来……
【问题讨论】:
-
好吧,当然,您可以编写一个函数来接受输入数据帧并根据需要对其进行按摩并返回另一个。参见例如docs.python.org/3/tutorial/controlflow.html#defining-functions 如果不熟悉用 Python 编写函数。
-
谢谢,我现在就读一读。我事后将函数应用于我的数据帧,但是要编写一个函数来完成我在我的问题中提出的问题,我不知道!
-
不打算回答我自己的问题,因为我现在没有尝试这个,但是......可能有我需要的这个问题:kdnuggets.com/2021/01/cleaner-data-analysis-pandas-pipes.html
标签: python pandas dataframe data-manipulation data-cleaning