Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何比较两个数据帧列?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何比较两个数据帧列?

Python 如何比较两个数据帧列?,python,python-3.x,pandas,Python,Python 3.x,Pandas,ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all() 当我比较主队和客队的得分时,错误是在if条件下。我想做的是在csv文件中添加一列,列出一支球队的胜负,赢是1,输是0,这样我就可以把一个赛季中某支球队的胜利加起来,计算他们获胜的概率,并预测下一个赛季获胜的概率,你可以这样做: import pandas as pd import quandl import numpy as np import matplotlib.p

ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()


当我比较主队和客队的得分时,错误是在if条件下。我想做的是在csv文件中添加一列,列出一支球队的胜负,赢是1,输是0,这样我就可以把一个赛季中某支球队的胜利加起来,计算他们获胜的概率,并预测下一个赛季获胜的概率,

你可以这样做:

import pandas as pd
import quandl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use("fivethirtyeight")
df_2010=pd.read_csv("c:/users/ashub/downloads/documents/MLB 2010.csv",index_col=0)
#print(df_2010)
sliced_data=df_2010[["Home Team","Away Team","Home Score","Away Score"]]
#print(sliced_data)
for win in sliced_data:
    flag1=sliced_data["Home Team"]+str("index")
    flag2=sliced_data["Away Team"]+str("index")
    print(sliced_data["Home Score"],sliced_data["Away Score"])
    if sliced_data["Home Score"]>sliced_data["Away Score"]:
        df_2010=df_2010.join([1,0],index=[flag1,flag2])
    else:
        df_2010=df_2010.join([0,1],index=[flag1,flag2])
df_2010.to_html("c:/users/ashub/desktop/ashu.html")
您将不需要切片数据帧

下面是一个完整的示例:

df_2010['Win'] = df_2010['Home Score'] > df_2010['Away Score']
这将增加

import pandas as pd
import numpy as np

df = pd.DataFrame([np.random.randint(0, 5, 5), 
                   np.random.randint(0, 5, 5)], 
                  index=['Home Score', 'Away Score']).T

print(df)

df['Win'] = df['Home Score'] > df['Away Score']

print(df)
另一列
win
如下所示:

   Home Score  Away Score
0           3           3
1           4           2
2           4           1
3           4           4
4           4           2

我认为您可以通过比较列来创建布尔掩码,然后分配新列:

   Home Score  Away Score    Win
0           3           3  False
1           4           2   True
2           4           1   True
3           4           4  False
4           4           2   True
这与:

np.random.seed(123)
sliced_data = pd.DataFrame([np.random.randint(0, 5, 5), 
                   np.random.randint(0, 5, 5)], 
                  index=['Home Score', 'Away Score']).T

m = sliced_data['Home Score'] > sliced_data['Away Score']


sliced_data['Away Team index'] = (~m).astype(int)
sliced_data['Home Team index'] = m.astype(int)

print(sliced_data)
   Home Score  Away Score  Away Team index  Home Team index
0           2           2                1                0
1           4           3                0                1
2           2           1                0                1
3           1           1                1                0
4           3           0                0                1

你能添加数据样本吗?请更详细地解释你试图完成什么。当我比较主队和客队的得分时,错误是在if条件下。我想做的是在csv文件中添加一列,列出一支球队的胜负,赢是1,输是0,这样我就可以把一个赛季中某支球队的胜利加起来,计算他们获胜的概率,并预测下一个赛季获胜的概率。但这总是会给主队分配1,而我想给获胜的球队分配1。我用
sliced_data=pd.DataFrame([np.random.randint]进行测试(0,5,5),np.random.randint(0,5,5)],index=[‘主场得分’、‘客场得分’).T
并且它可以工作,可能数据中有一些问题?我添加了样本并简化了解决方案。
sliced_data['Away Team index'] = np.where(m, 0,1)
sliced_data['Home Team index'] = np.where(m, 1,0)

print(sliced_data)
   Home Score  Away Score  Away Team index  Home Team index
0           2           2                1                0
1           4           3                0                1
2           2           1                0                1
3           1           1                1                0
4           3           0                0                1