如何通过查找数组B中数组A的值来合并以下两个数组?
数组A:
array([['GG', 'AB', IPv4Network('1.2.3.41/26')],
['GG', 'AC', IPv4Network('1.2.3.42/25')],
['GG', 'AD', IPv4Network('1.2.3.43/24')],
['GG', 'AE', IPv4Network('1.2.3.47/23')],
['GG', 'AF', IPv4Network('1.2.3.5/24')]],
dtype=object)
Run Code Online (Sandbox Code Playgroud)
和数组B:
array([['123456', 'A1', IPv4Address('1.2.3.5'), nan],
['987654', 'B1', IPv4Address('1.2.3.47'), nan]],
dtype=object)
Run Code Online (Sandbox Code Playgroud)
这里的目标是创建Array C,通过从Array A中的Array B查找IPv4Address并比较它们,并获取相应数组的第二个值并存储它:
数组C:
array([['123456', 'A1', IPv4Address('1.2.3.5'), nan, 'AF'],
['987654', 'B1', IPv4Address('1.2.3.47'), nan, 'AE']],
dtype=object)
Run Code Online (Sandbox Code Playgroud)
ip地址属于这种类型:https://docs.python.org/3/library/ipaddress.html#ipaddress.ip_network
我怎样才能做到这一点?
请注意,合并取决于IP匹配,因此生成的数组C将具有与数组B相同数量的数组,但它将具有一个更多值.建议的重复链接没有回答相同的问题.
我在将DataFrame数组合并到单个DataFrame中时遇到了问题,并在特定列上合并.
我有一个DataFrames列表data,每个元素都被调用,data[i]如下所示:
Rank Name
2400 1 name1
2401 2 name2
2402 3 name3
2403 4 name4
2404 5 name5
Run Code Online (Sandbox Code Playgroud)
每个DataFrame包含给定月份的前5个列表,该列表包含一年的月度结果.
我希望最终的合并DataFrame看起来像这样:
Rank Name_month1 Name_month2 Name_month3 ...
2400 1 name1 name1 name1 ...
2401 2 name2 name2 name2 ...
2402 3 name3 name3 name3 ...
2403 4 name4 name4 name4 ...
2404 5 name5 name5 name5 ...
Run Code Online (Sandbox Code Playgroud)
其中每一列在第一列之后对应于每月排名.
我从列表中合并2个DataFrame没有问题,data:
pandas.merge(data[0], data[1], on='Rank', suffix=['_month1', '_month2'])
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用filter()或链接时.merge,我一直遇到麻烦.
有什么想法吗?谢谢!
我正在尝试加入数据框。他们看起来像这样
DF1 = ID COUNTRY YEAR V1 V2 V3 V4
12 USA 2012 x y z a
13 USA 2013 x y z a
14 RUSSIA 2012 x y z a
DF2 = ID COUNTRY YEAR TRACT
9 USA 2000 A
13 USA 2013 B
Run Code Online (Sandbox Code Playgroud)
期望的最终目标是:
DF3 = ID COUNTRY YEAR V1 V2 V3 V4 TRACT
9 USA 2000 A
12 USA 2012 x y z a
13 USA 2013 x y z a B
14 RUSSIA 2012 x y …Run Code Online (Sandbox Code Playgroud) 我正在尝试组合两组数据,但是我无法确定哪种方法最合适(连接,合并,连接等)这个应用程序,并且文档没有任何示例可以做我需要的去做.
我有两组数据,结构如下:
>>> A
Time Voltage
1.0 5.1
2.0 5.5
3.0 5.3
4.0 5.4
5.0 5.0
>>> B
Time Current
-1.0 0.5
0.0 0.6
1.0 0.3
2.0 0.4
3.0 0.7
Run Code Online (Sandbox Code Playgroud)
我想组合数据列并将"时间"列合并在一起,以便获得以下内容:
>>> AB
Time Voltage Current
-1.0 0.5
0.0 0.6
1.0 5.1 0.3
2.0 5.5 0.4
3.0 5.3 0.7
4.0 5.4
5.0 5.0
Run Code Online (Sandbox Code Playgroud)
我已经尝试过AB = merge_ordered(A, B, on='Time', how='outer'),虽然它成功地组合了数据,但它输出类似于:
>>> AB
Time Voltage Current
-1.0 0.5
0.0 0.6
1.0 5.1
1.0 0.3
2.0 5.5
2.0 0.4 …Run Code Online (Sandbox Code Playgroud) 我有两个不同的DataFrame我要合并date和hours列.我看到了一些线程,但我无法找到解决问题的方法.我也阅读了这份文件,尝试了不同的组合,然而,效果并不好.
我的两个不同DataFrame的示例,
DF1
date hours var1 var2
0 2013-07-10 00:00:00 150.322617 52.225920
1 2013-07-10 01:00:00 155.250917 53.365296
2 2013-07-10 02:00:00 124.918667 51.158249
3 2013-07-10 03:00:00 143.839217 53.138251
.....
9 2013-09-10 09:00:00 148.135818 86.676341
10 2013-09-10 10:00:00 147.833517 53.658016
11 2013-09-10 12:00:00 149.580233 69.745368
12 2013-09-10 13:00:00 163.715317 14.524894
13 2013-09-10 14:00:00 168.856650 10.762779
Run Code Online (Sandbox Code Playgroud)
DF2
date hours myvar1 myvar2
0 2013-07-10 09:00:00 1.617 98.56
1 2013-07-10 10:00:00 2.917 23.60
2 2013-07-10 12:00:00 19.667 …Run Code Online (Sandbox Code Playgroud) 我正在尝试基于“X”列合并 Python 中的两个数据框。
左侧数据框中的 X 列具有非唯一值,右侧数据框中的 X 列具有唯一值。如何将右侧数据框中的值合并到左侧数据框中?
我想将 df2 中的行合并到 df1 中以形成 df3
df1 = pd.DataFrame({'A': ['NA','EU','LA','ME'],
'B': [50, 23,21,100],
'X': ['IW233', 'IW455', 'IW455', 'IW100']})
df2 = pd.DataFrame({'C': [50, 12, 12, 11, 10, 16],
'X': ['IW455', 'IW200', 'IW233', 'IW150', 'IW175', 'IW100'],
'D': ['Aug', 'Sep', 'Jan', 'Feb', 'Dec', 'Nov']})
Run Code Online (Sandbox Code Playgroud)
df3:1
我有两个数据帧,A和B,我希望得到A中但不是B中的数据帧,就像左下角的那个.
Dataframe A有列['a','b' + others],B有列['a','b' + others].没有NaN值.我尝试了以下方法:
1.
dfm = dfA.merge(dfB, on=['a','b'])
dfe = dfA[(~dfA['a'].isin(dfm['a']) | (~dfA['b'].isin(dfm['b'])
Run Code Online (Sandbox Code Playgroud)
2.
dfm = dfA.merge(dfB, on=['a','b'])
dfe = dfA[(~dfA['a'].isin(dfm['a']) & (~dfA['b'].isin(dfm['b'])
Run Code Online (Sandbox Code Playgroud)
3.
dfe = dfA[(~dfA['a'].isin(dfB['a']) | (~dfA['b'].isin(dfB['b'])
Run Code Online (Sandbox Code Playgroud)
4.
dfe = dfA[(~dfA['a'].isin(dfB['a']) & (~dfA['b'].isin(dfB['b'])
Run Code Online (Sandbox Code Playgroud)
但是当我len(dfm)和len(dfe)他们不总结到dfA(它由几个数字是关闭).我试过在虚拟案例和#1工作中这样做,所以也许我的数据集可能有一些我无法重现的特性.
这样做的正确方法是什么?
我有三个数据框。它们都有一个公共列,我需要根据公共列合并它们,而不会丢失任何数据
输入项
>>> df1 0 Col1 Col2 Col3 1个数据1 3 4 2个数据2 4 3 3个数据3 2 3 4个数据4 2 4 5个数据5 1 4 >>> df2 0 Col1 Col4 Col5 1个数据1 7 4 2个数据2 6 9 3个数据3 1 4 >>> df3 0 Col1 Col6 Col7 1个数据2 5 8 2个数据3 2 7 3个数据5 5 3
预期产量
>>> df 0 Col1 Col2 Col3 Col4 Col5 Col6 Col7 1个数据1 3 4 7 4 2个数据2 4 3 6 9 5 8 3个数据3 2 3 1 …
我必须使用如下所示的数据框:
df1: condition
A
A
A
B
B
B
B
df2: condition value
A 1
B 2
Run Code Online (Sandbox Code Playgroud)
我想为每个条件分配其值,向 df1 添加一列以获得:
df1: condition value
A 1
A 1
A 1
B 2
B 2
B 2
B 2
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?先感谢您!
如何仅在“id”上合并/连接这两个数据框。生成 3 个新数据框:
在 Python 中使用pandas。
第一个数据帧 (DF1)
| id | name |
|-----------|-------|
| 1 | Mark |
| 2 | Dart |
| 3 | Julia |
| 4 | Oolia |
| 5 | Talia |
Run Code Online (Sandbox Code Playgroud)
第二个数据帧 (DF2)
| id | salary |
|-----------|--------|
| 1 | 20 |
| 2 | 30 |
| 3 | 40 |
| 4 | …Run Code Online (Sandbox Code Playgroud)