我希望将数据帧df1和df2结合起来在Python中获取df3,最好是单行(,对于df1.LETS中的所有x,没有“......” )。
我目前因为使用Google-fu而失言,所以我在StackExchange,希望其他程序员可以帮助我填补这种困境。
谢谢!
df1 df2 df3
LETS NUMS LETS NUMS
A 1 A 1
B 2 A 2
3 A 3
4 A 4
B 1
B 2
B 3
B 4
答案 0 :(得分:2)
您可以使用:
com.sun.jersey.api.client.UniformInterfaceException:
POST http://auth.uidai.gov.in/1.6/public/6/9/MMZS5K8bEkGWFQe6y_ruBu9tFR2yQFQkqmECCpp9veRawhue1oGpa4s
returned a response status of 503
带有df1 = pd.DataFrame({'LETS':list('AB')})
df2 = pd.DataFrame({'NUMS':range(1,5)})
+ merge
列且cross join
和assign
帮助列constant
的 A
解决方案:
df = pd.merge(df1.assign(A=1), df2.assign(A=1), on='A').drop('A', axis=1)
print (df)
LETS NUMS
0 A 1
1 A 2
2 A 3
3 A 4
4 B 1
5 B 2
6 B 3
7 B 4
另一个解决方案drop
和pandas 0.20.1
中的新功能 - MultiIndex.from_product
df = pd.MultiIndex.from_product([df1['LETS'], df2['NUMS']]).to_frame()
df.columns = ['LETS','NUMS']
print (df)
LETS NUMS
A 1 A 1
2 A 2
3 A 3
4 A 4
B 1 B 1
2 B 2
3 B 3
4 B 4
print (df.reset_index(drop=True))
LETS NUMS
0 A 1
1 A 2
2 A 3
3 A 4
4 B 1
5 B 2
6 B 3
7 B 4
答案 1 :(得分:1)
pd.DataFrame(index=pd.MultiIndex.from_product([df1.LETS, df2.NUMS],
names=("LETS", "NUMS"))).reset_index()
# LETS NUMS
#0 A 1
#1 A 2
#2 A 3
#3 A 4
#4 B 1
#5 B 2
#6 B 3
#7 B 4