根据我的juptyer笔记本查询,Python 3.6.5和Pandas 0.23.0。
我正在合并两个数据帧:
df_merged1=pd.merge(df_RL, df_BR, how='left',left_on=df_RL['Business Service Manual'], right_on=df_BR['Names'])
左边的数据帧df_RL.dtypes
Server object
Server Farm object
Business Service Man
我有两个大数据帧: DBa和DBb。DBb的所有列都是DBa格式的。
我想按DBb的所有列合并这两个数据帧。
我在试着:
new <- merge(DBa, DBb, by=colnames(DBb))
但它给了我一个错误:
Elements listed in `by` must be valid column names in x and y
我该怎么做呢?
我试图将两个数据帧中的几个列合并到另一个数据帧中,但两个数据帧上的键列的命名都不正确。如果你看图片“原始的两个数据帧”,Table_1有一个键列"CostCenter“,而Table_2有一个键列"CC”。我希望最终结果看起来像标题为"New dataframe“的图片。如您所见,我只从Table_2检索了"Fixed/Variable“和"CostCenterName”,而没有带来"CC“、"CostCenterSummary”和“CostCenterName”列。 -谢谢你的帮助!-吉姆 Original two dataframe
当两个数据帧被一个数字列合并时(默认情况下),它们将由该列作为一个数字排序。但是,如果使用两个数值列作为by,则会产生不同的排序(实际上,似乎数字列被转换为字符串并按字符串排序)。这是意料之中的,还是一个bug?
例如,考虑以下两个数据框架:
A <- data.frame(a = 1:12, b = 1, x = runif(12))
B <- data.frame(a = 1:12, b = 1, y = runif(12))
然后merge(A, B, by = 'a')生成一个列a值为1、2、.、9、10、11、12的数据帧(即期望的数值排序)。但是,mer
我有两个数据帧,我想根据时间范围将它们连接起来,例如
数据帧A
user timestamp product
A 2015/3/13 1
B 2015/3/15 2
数据帧B
user time behavior
A 2015/3/1 2
A 2015/3/8 3
A 2015/3/13 1
B 2015/3/1 2
我想合并2个数据帧,如下所示(帧B左连接到帧A)列"timestamp1“比列" timesta
假设我有两个数据帧A和B,每个数据帧包含两个名为x和y的列。我希望连接这两个数据帧,但不是连接在两个数据帧中x和y列相等的行上,而是连接在A的x列是B的x列的子字符串且y列相同的行上。
if A[x][1]='mpla' and B[x][1]='mplampla'
我希望它能被捕获。
在sql上,它可能类似于:
select *
from A
join B
on A.x<=B.x and A.y<=B.y.
这样的事情能在python上完成吗?
如何从具有共同列值的两个数据帧中获得合并的数据帧,使得只有那些行使得合并的数据帧在特定的列中具有共同的值。
我有5000行df1格式:
director_name actor_1_name actor_2_name actor_3_name movie_title
0 James Cameron CCH Pounder Joel David Moore Wes Studi Avatar
1 Gore Verbinski Johnny Depp Orlando Bloom Jack Davenport Pirates
o
我正在尝试使用索引作为引用,将一列数据从一个数据帧复制到另一个数据帧。在复制列时,我想用NaN填充在两个数据帧中都没有出现的任何条目。
例如,我有这两个虚拟dfs:
df1 =
col_1 col_2 col_3 col_4
index
A 1 4 7 10
B 2 5 8 11
C 3 6 9 12
df2 =
col_5 col_6
index
A 13 15
C 14
我对Python完全是个新手,只是在学习一些我用过的用例。 我有两个数据框,一个是我需要Country列中的值的地方,另一个是名为'Countries‘的列中的值,它需要在主数据框中映射到名为' Data’的列。(如果这个问题已经回答了,请接受我的道歉) 下面是主要的DataFrame: Name Data | Country
----------------------------- | ---------
Arjun Kumar Reddy las Vegas |
Divya london Khosla |
我有两个数据帧:
df1 =
Id ColA ColB ColC
1 aa bb cc
3 11 ww 55
5 11 bb cc
df2 =
Id ColD ColE ColF
1 ff ee rr
2 ww rr 55
3 hh 11 22
4 11 11 cc
5 cc bb aa
我需要合并这两个数据帧以获得以下结果:
result =
Id ColA ColB ColC ColD ColE ColF
1 aa bb cc ff ee rr
2 NaN NaN
我在R中有两个数据帧。
数据帧1
A B C D E F G
1 2 a a a a a
2 3 b b b c c
4 1 e e f f e
数据帧2
X Y Z
1 2 g
2 1 h
3 4 i
1 4 j
我想将dataframe1的列A和B与dataframe2的列X和Y匹配。这不是成对比较,即第1行(A=1 B=2)被认为与dataframe2的第1行(X=1,Y=2)和第2行(X=2,Y=1)相同。
当可以找到匹配时,我想将dataframe1的列C、D、E、F添加回dataframe2的匹配行,如下所示:没有匹配作为na。
最终数据帧
X Y Z C D E F G
我尝试在Python中组合两个CSV文件,每个CSV文件都有唯一的列,但这两个CSV文件共享一个公共键列。 我一直在寻找StackOverflow/Google/Pandas文档,但没有找到我想要的东西。Pandas文档页面上提供的merge和concat示例与我试图实现的不同,所以我不确定我所要求的在Pandas中是否可行。 我已经将两个CSV文件中的选定列读入到单独的数据帧中,现在我想要做的是基于键列将这两个数据帧合并为一个数据帧。 Example
CSV 1:
Key Make Model
501 Audi A3
502 Audi A4
503 Audi
我有2个具有公共列/键(x,y)的pandas dataframes df1 & df2。
我想在键(x,y)上进行"(df1 & not df2)“式的合并,这意味着我希望我的代码只在df1中返回包含(x,y)行的数据帧&而不是在df2中。
SAS具有相同的功能
data final;
merge df1(in=a) df2(in=b);
by x y;
if a & not b;
run;
谁能优雅地在熊猫中复制相同的功能?如果我们能在merge()中指定how="left-right“,那就太好了。
我有两个数据帧df1和df2。 df1 =
A B C D
1 2 3 7
.
.
df2 =
A E F G
1 5 4 5
.
. 当我通常想要使用pandas合并两个数据框中的特定列时,我会这样做: import pandas as pd
df3 = pd.merge(df1[[A,B]],df2[[A,G]], on='A', how='inner') 然而,我感兴趣的是如何避免数据框中的几列并合并其余列。例如,我希望在合并时避免df1中的列C和D,以及df2中的E和F列,这样得到的df3只有A,B,G列。 这是逆向工程