Python 在具有多个输入的多列上应用函数不适用于列datetime
基于此,我有一个后续问题 ManelFornos代码正是我所需要的: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
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是的。这解决了我的问题!!!谢谢