我尝试在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
我有两个数据帧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列。 这是逆向工程
我正在合并熊猫中的两个数据集,并希望加快这个过程,所以我在用于合并的列中对这两个数据集进行了排序。(以前,这些列根本没有排序。)排序没有造成明显的速度差异,两者都花了大约8秒。
如果我手动合并两堆纸,比如说,它们的页码,我会首先按页码对它们进行排序。否则,我将不得不做很多来回翻转之间的堆栈。
我写了一个测试来比较这两个过程。它按随机顺序生成两个帧,每个帧有一百万行。然后,它将生成第一列上已排序的另外两个列。然后,它合并前两个,最后,合并后两个。
数据生成过程太慢了,以至于我没有时间尝试更多的行--但是合并仍然是在零感知的时间内进行的,即使没有排序。
import pandas as pd
im
我有两个独立的pandas数据帧(df1和df2),它们有多个列,但只有一个公共列('text')。
我希望在df2和df1共有的列的任何行中找不到匹配的df2中的每一行。
df1
A B text
45 2 score
33 5 miss
20 1 score
df2
C D text
.5 2 shot
.3 2 shot
.3 1 miss
结果df (删除包含未命中的行,因为它出现在df1中)
C D text
.5 2 shot
.3 2 shot
在这
在pandas中按行或按列混洗数据帧的简单而有效的方法是什么?即如何编写一个函数shuffle(df, n, axis=0),该函数接受一个数据帧、多个随机n和一个轴(axis=0是行,axis=1是列),并返回已经被随机n次的数据帧的副本。
编辑:关键是在不破坏数据帧的行/列标签的情况下执行此操作。如果你只是混洗df.index,就会丢失所有的信息。我希望生成的df与原始的相同,只是行的顺序或列的顺序不同。
Edit2:我的问题不清楚。当我说对行进行混洗时,我指的是独立地对每一行进行混洗。因此,如果您有两列a和b,我希望每一行都按自己的顺序排列,这样您就不会像将每一行作为一个整体重新排序时那
我正在转换来自Excel的数据帧,该数据帧的数据在同一单元格中按“enter”拆分 以下示例(请注意,这只是一个数据点): Company Name
6221 - Jacksonville, FL
Total Stock
This is a description
$400
$999 预期输出: Company | Location | Stock | Description | Price | High
Company Name | Jacksonville FL | Total Stock | This is a Description | $400 | $999 如何使用pandas将
非常基本的Pandas用户,但我在这里遇到了一个障碍。
所以我有一个名为dg的数据帧,它有一个名为'user_id‘的列,还有另外两个目前不需要的列。我还有另外两个数据帧(data_conv和data_retargeting),它们包含相同的列名和一个名为“timestamp”的列,但是每个“user_id”都有多个时间戳。
我需要在dg中为找到的最小和最大‘时间戳’创建新列。
我目前可以通过一些非常冗长的方法来处理iterrow行,但是对于大约16000的数据帧,它需要45分钟,我想减少它,因为我有更大的数据帧来运行这个数据帧。
for index,row in dg.i