在Pandas DataFrame中,我可以使用DataFrame.isin()
函数将列值与另一列进行匹配。
例如:假设我们有一个DataFrame:
df_A = pd.DataFrame({'col1': ['A', 'B', 'C', 'B', 'C', 'D'],
'col2': [1, 2, 3, 4, 5, 6]})
df_A
col1 col2
0 A 1
1 B 2
2 C 3
3 B 4
4 C 5
5 D 6
和另一个DataFrame:
df_B = pd.DataFrame({'col1': ['C', 'E', 'D', 'C', 'F', 'G', 'H'],
'col2': [10, 20, 30, 40, 50, 60, 70]})
df_B
col1 col2
0 C 10
1 E 20
2 D 30
3 C 40
4 F 50
5 G 60
6 H 70
我可以使用.isin()
的功能相匹配的列值df_B
对的列值df_A
例如:
df_B[df_B['col1'].isin(df_A['col1'])]
产量:
col1 col2
0 C 10
2 D 30
3 C 40
PySpark DataFrame中的等效操作是什么?
df_A = pd.DataFrame({'col1': ['A', 'B', 'C', 'B', 'C', 'D'],
'col2': [1, 2, 3, 4, 5, 6]})
df_A = sqlContext.createDataFrame(df_A)
df_B = pd.DataFrame({'col1': ['C', 'E', 'D', 'C', 'F', 'G', 'H'],
'col2': [10, 20, 30, 40, 50, 60, 70]})
df_B = sqlContext.createDataFrame(df_B)
df_B[df_B['col1'].isin(df_A['col1'])]
.isin()
上面的代码给我一条错误消息:
u'resolved attribute(s) col1#9007 missing from
col1#9012,col2#9013L in operator !Filter col1#9012 IN
(col1#9007);;\n!Filter col1#9012 IN (col1#9007)\n+-
LogicalRDD [col1#9012, col2#9013L]\n'
这种操作在spark中称为“左半联接”:
df_B.join(df_A, ['col1'], 'leftsemi')
问题内容: 我在尝试获取另一列中的字符串值的字符计数列时遇到问题,但还没有弄清楚如何有效地做到这一点。 显然,这涉及首先创建一个null列,然后将其重写,这对我的数据集要花费很长时间。那么获得这样的东西最有效的方法是什么 我已经检查了很多,但是还无法弄清楚。 问题答案: Pandas为此使用了矢量化字符串方法:。要创建新列,您可以编写: 例如: 这应该比使用Python循环在DataFrame上循
谢谢,有用。但是我有什么办法可以去掉多余的“,”吗?这是由于列中存在空白值造成的。有没有一种方法可以不接受那些有空白值的列?它现在显示的是: 我多么想要它:
我有一个数据帧df1,其中索引是DatetimeIndex,有5列,col1,col2,col3,col4,col5。 我有另一个df2,它有一个几乎相等的datetimeindex(df1中可能缺少df1的某些天),还有一个“Value”列。 当日期相同时,我想将df1乘以df2的值。但不是所有列的col1。。。col5,只有col1。。。可乐 我可以看到有可能乘以col1*Value,然后乘以
问题内容: 这个问题已经被问了很多遍了,而且似乎对其他人也有用,但是,当我从不同的DataFrame复制列(并且长度相同)时,我得到了值。 我需要这样 我尝试了以下方法 我得到以下内容 问题答案: 您的DataFrames的索引是不同的 (相应地,每列 的索引也不同 ),因此,当尝试将一个DataFrame的列分配给另一列时, pandas会尝试对齐索引,但这样做会失败,请插入NaN。 考虑以下示
我正在使用齐柏林飞艇0.6.2和火花2.0。 我尝试在循环中执行查询,但效果不是很好。 我需要循环一个数据帧的每一行,大约5000行,并执行一个查询,这将在另一个数据帧中增加一个值。 以下是我的尝试: 我试着从两个数据帧中提取一小部分,但仍然很慢。我觉得我做得不对。 知道如何快速更新数据帧吗?
问题内容: 我有一个具有维度(不包括索引)的DataFrame(df1),我想要为该行将每个行除以另一个具有维度的DataFrame(df2)。两者具有相同的列标题。我试过了: 以及 其他多个解决方案,我总是在每个单元格中获得包含值的df 。我在函数中缺少什么参数? 问题答案: 在中,您需要提供df2(例如)的轴/行。 或者你可以使用