df1 为:
A B C D0 A0 B0 C0 D01 A1 B1 C1 D12 A2 B2 C2 D23 A3 B3 C3 D3
df2 为:
A B C D1 A1 B4 C4 D42 A5 B5 C5 D53 A6 B6 C6 None4 A7 B7 C7 D7
如果想要修改 df2 中第一行的值,使用:
df2.loc[df2['A']=='A1', ('B', 'C', 'D')] = df2.loc[df2['A']=='A5', ('B', 'C', 'D')]
,df2 会变为:
A B C D1 A1 NaN NaN NaN2 A5 B5 C5 D53 A6 B6 C6 None4 A7 B7 C7 D7
第一行的值全部变为了空值,但是同样的句式,使用 df1 给 df2 的第一行赋值:df2.loc[df2['A']=='A1', ('B', 'C', 'D')] = df1.loc[df1['A']=='A1', ('B', 'C', 'D')]
,则可以成功赋值,df2 为:
A B C D1 A1 B1 C1 D12 A5 B5 C5 D53 A6 B6 C6 None4 A7 B7 C7 D7
另外,如果将第一个赋值语句改为:df2.loc[df2['A']=='A1', ('B', 'C', 'D')] = df2.loc[df2['A']=='A5', ('B', 'C', 'D')].values
,也是可以赋值成功的:
A B C D1 A1 B5 C5 D52 A5 B5 C5 D53 A6 B6 C6 None4 A7 B7 C7 D7
请教一下大神,为什么结果会这样?
你是不是测试有问题df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df1.loc[df1['A'] == 'A1', ('B', 'C', 'D')]
不加 values 也是一样的情况。
import pandas as pddata1 = { 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}data2 = { 'A': ['A1', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', None, 'D7']}df1 = pd.DataFrame(data1)df2 = pd.DataFrame(data2)print(df1)print(df2)df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df1.loc[df1['A'] == 'A1', ('B', 'C', 'D')]print(df2)# df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df2.loc[df2['A'] == 'A5', ('B', 'C', 'D')]# print(df2)
问题内容: 当仅使用css将鼠标悬停在另一个类的元素上时,是否可以修改一个类的css? 就像是: 只有“包装器”不在“项目”内部,而是在其他地方。 我真的不想在简单的事情上使用javascript,但是如果必须的话,我该怎么做?这是我失败的尝试: 每个班级只有一个要素。不知道为什么他们在制作模板时不使用ID,但这就是事实,我无法更改。 [编辑] 这是一个菜单。每个菜单元素都有一个不同的类。当您将鼠
问题内容: 我有以下Pandas DataFrame,我想创建另一列来比较col1的前一行,以查看它们是否相等。最好的方法是什么?就像下面的DataFrame。谢谢 问题答案: 您需要使用: 或改为使用,但是在大型DataFrame中,它会稍微慢一些: 时间 :
问题内容: 假设我有以下DataFrame: 这按预期工作: 但这不是: 为什么?我如何在不必写两行的情况下实现“苹果”和“香蕉”值的转换 问题答案: 您应该使用loc, 而无需链接 : 请参阅有关 返回视图与副本的文档,如果将链接分配给副本(并丢弃),但是如果将它分配给一个位置,则大熊猫会聪明地意识到您想要分配给原始副本。
本文向大家介绍pandas修改DataFrame列名的方法,包括了pandas修改DataFrame列名的方法的使用技巧和注意事项,需要的朋友参考一下 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: 方法一:暴力方法 但是缺点是必须写三个,要不报错。 方法二:较好的方法 好处是可以随意改个数: 可以只改变'A','C',不改变'B'。 以上
我是java多线程编程的新手。我知道它可以通过线程通信来完成,但我不知道如何继续。我不知道如果在文件中进行了一些更改,一个线程将如何通知另一个线程。问题在下面提到。 我有一个逗号分隔的文件,其中写入了一些行。我希望从我的主线程启动两个线程。csv文件可能会附加到外部/手动。如果csv文件中做了一些更改,其中一个线程将通知第二个线程,第二个线程将逐行并发读取该文件并执行一些任务。 谢谢
如果可能请帮忙。多谢.