我有两个版本的函数使用Pandas
for Python 2.7
去经历inputs.csv
,逐行。
第一个版本使用Series.apply()
on a single column
,并按预期遍历每一行。
第二个版本使用DataFrame.apply()
on multiple columns
,并且由于某种原因它会读取顶行两次。然后它继续执行其余的行而不重复。
你有什么想法为什么后者读第一行两次?
版本 #1 –Series.apply()
(读顶行一次)
import pandas as pd
df = pd.read_csv(inputs.csv, delimiter=",")
def v1(x):
y = x
return pd.Series(y)
df["Y"] = df["X"].apply(v1)
版本 #2 –DataFrame.apply()
(读顶行两遍)
import pandas as pd
df = pd.read_csv(inputs.csv, delimiter=",")
def v2(f):
y = f["X"]
return pd.Series(y)
df["Y"] = df[(["X", "Z"])].apply(v2, axis=1)
print y
:
v1(x): v2(f):
Row_1 Row_1
Row_2 Row_1
Row_3 Row_2
Row_3