相关疑难解决方法(0)

同时向pandas添加多个列

我是熊猫的新手,并试图弄清楚如何同时为pandas添加多个列.任何帮助在这里表示赞赏.理想情况下,我想一步到位而不是多次重复步骤...

import pandas as pd

df = {'col_1': [0, 1, 2, 3],
        'col_2': [4, 5, 6, 7]}
df = pd.DataFrame(df)

df[[ 'column_new_1', 'column_new_2','column_new_3']] = [np.nan, 'dogs',3]  #thought this would work here...
Run Code Online (Sandbox Code Playgroud)

python pandas

79
推荐指数
4
解决办法
10万
查看次数

从函数向Pandas Dataframe添加多个列

我有一个mydf有两列的pandas数据框,两列都是datetime数据类型:mydatemytime.我要添加三个多列:hour,weekday,和weeknum.

def getH(t): #gives the hour
    return t.hour
def getW(d): #gives the week number
    return d.isocalendar()[1] 
def getD(d): #gives the weekday
    return d.weekday() # 0 for Monday, 6 for Sunday

mydf["hour"] = mydf.apply(lambda row:getH(row["mytime"]), axis=1)
mydf["weekday"] = mydf.apply(lambda row:getD(row["mydate"]), axis=1)
mydf["weeknum"] = mydf.apply(lambda row:getW(row["mydate"]), axis=1)
Run Code Online (Sandbox Code Playgroud)

该代码段有效,但它的计算效率不高,因为它至少循环数据帧三次.我想知道是否有更快和/或更优化的方法来做到这一点.例如,使用zipmerge?例如,如果我只创建一个返回三个元素的函数,我该如何实现呢?为了说明,该功能将是:

def getHWd(d,t):
    return t.hour, d.isocalendar()[1], d.weekday()
Run Code Online (Sandbox Code Playgroud)

python pandas

31
推荐指数
3
解决办法
3万
查看次数

标签 统计

pandas ×2

python ×2