Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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
将dfA中组中的所有x与所有可能的y进行比较';在dfB中使用python的同一组中的_Python_Pandas - Fatal编程技术网

将dfA中组中的所有x与所有可能的y进行比较';在dfB中使用python的同一组中的

将dfA中组中的所有x与所有可能的y进行比较';在dfB中使用python的同一组中的,python,pandas,Python,Pandas,如何将数据集中某个案例的所有x值与另一个数据集中某个案例的所有可能y值进行比较?也就是说,比较这些按大小写复制的数据帧(df.A和df.B)中的所有x和y。 dfA dfB [5行x 2列] 要得到这个dfC case date x y 0 A 2014-03-02 1 T 1 B 2014-02-02 2 T 2 B 2014-03-01 3 T 3 B 2014-04-08 4 T 4 B 2014-02-02 2 F 5 B

如何将数据集中某个案例的所有x值与另一个数据集中某个案例的所有可能y值进行比较?也就是说,比较这些按大小写复制的数据帧(df.A和df.B)中的所有x和y。 dfA

dfB

[5行x 2列] 要得到这个dfC

  case       date  x y
0    A 2014-03-02  1 T
1    B 2014-02-02  2 T
2    B 2014-03-01  3 T
3    B 2014-04-08  4 T
4    B 2014-02-02  2 F
5    B 2014-03-01  3 F
6    B 2014-04-08  4 F
一起工作的东西

dfA = pd.DataFrame(
{'case' : pd.Series(["A","B","B","B","C"]), 
 'x' : pd.Series([1,2,3,4,5])})

dfB = pd.DataFrame({'case':list('ABBBB'), 'y':list('12345')})
我想——如果我理解正确的话——您所需要的只是(也许还需要调用
排序
):

屈服

  case       date  x  y
0    A 2014-03-02  1  T
1    B 2014-02-02  2  T
3    B 2014-03-01  3  T
5    B 2014-02-08  4  T
2    B 2014-02-02  2  F
4    B 2014-03-01  3  F
6    B 2014-02-08  4  F

[7 rows x 4 columns]

你太好了。。。哇,我想得太多了。唯一的问题是,我想保留所有案例(调整后的示例更清晰),但我意识到这正是为什么。谢谢
dfA = pd.DataFrame(
{'case' : pd.Series(["A","B","B","B","C"]), 
 'x' : pd.Series([1,2,3,4,5])})

dfB = pd.DataFrame({'case':list('ABBBB'), 'y':list('12345')})
import pandas as pd
import datetime as DT

dfA = pd.DataFrame(
    {'case' : pd.Series(["A","B","B","B"]), 
     'date' : pd.Series([DT.datetime(2014, 3, 2), DT.datetime(2014, 2,2),
                         DT.datetime(2014, 3, 1), DT.datetime(2014, 2, 8)]),
     'x' : pd.Series([1,2,3,4])})

dfB = pd.DataFrame({'case':list('ABB'), 'y':list('TTF')})

result = pd.merge(dfA, dfB, on=['case'], how='outer')
result.sort(['case','y','x'], ascending=[True,False,True], inplace=True)
print(result)
  case       date  x  y
0    A 2014-03-02  1  T
1    B 2014-02-02  2  T
3    B 2014-03-01  3  T
5    B 2014-02-08  4  T
2    B 2014-02-02  2  F
4    B 2014-03-01  3  F
6    B 2014-02-08  4  F

[7 rows x 4 columns]