Python 在具有多个输入的多列上应用函数不适用于列datetime

Python 在具有多个输入的多列上应用函数不适用于列datetime,python,pandas,Python,Pandas,基于此,我有一个后续问题 ManelFornos代码正是我所需要的: import quandl import MySQLdb import pandas as pd mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='px_user', passwd='ProjectX2016', db='px') df = quandl.get("WIKI/GOOGL") columns = ["High", 'Low', 'Clos

基于此,我有一个后续问题

ManelFornos代码正是我所需要的:

import quandl
import MySQLdb
import pandas as pd

mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='px_user', passwd='ProjectX2016', db='px')

df = quandl.get("WIKI/GOOGL")

columns = ["High", 'Low', 'Close']


def operations(row, columns):
    df1 = row[columns[0]] + row[columns[1]] + row[columns[2]]
    df2 = -row[columns[1]] - row[columns[2]] + row[columns[0]]
    return df1, df2

print(df.info())
df["function1"], df["function2"] = zip(*df.apply(lambda row: operations(row, columns), axis=1))

print(df.info())
print(df[["High","Low","Close","function1", "function2"]].head(5))
但在我的dataframe中,我有一个DateTime列,这会导致一个错误:

import quandl
import MySQLdb
import pandas as pd

mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='px_user', passwd='ProjectX2016', db='px')

df = quandl.get("WIKI/GOOGL")

columns = ["High", 'Low', 'Close']


df['DateTime'] = df.index

def operations(row, columns):
    df1 = row[columns[0]] + row[columns[1]] + row[columns[2]]
    df2 = -row[columns[1]] - row[columns[2]] + row[columns[0]]
    return df1, df2

print(df.info())
df["function1"], df["function2"] = zip(*df.apply(lambda row: operations(row, columns), axis=1))

print(df.info())
print(df[["High","Low","Close","function1", "function2"]].head(5)
将引发此错误:

ValueError: Shape of passed values is (3211, 2), indices imply (3211, 13)
有人知道怎么解决这个问题吗

谢谢!
e、

哇,这真是个奇怪的问题。。。如果执行
df[“function1”]、df[“function2”]=zip(*df.drop('DateTime',axis=1).应用(lambda行:操作(行,列),axis=1))
?@BobHaffner是的。这解决了我的问题!!!谢谢