将dfA中组中的所有x与所有可能的y进行比较';在dfB中使用python的同一组中的
如何将数据集中某个案例的所有x值与另一个数据集中某个案例的所有可能y值进行比较?也就是说,比较这些按大小写复制的数据帧(df.A和df.B)中的所有x和y。 dfA dfB [5行x 2列] 要得到这个dfC将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
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]