我想在pandas中做一些类似Vlookup的事情,我有一个两列的数据框,需要检查第二列值(B)在第一列(A)中是否有效,如果是,则将行和第二列值插入到名为C的新列中,下面是示例表: 原始数据帧为: A B
a -
b a
c a
d b
e d 首选数据帧为: A B C
a - N/A
b a -
c a -
d b a
e d b 实际上,我是python的初学者,但在excel中,这可以通过A列和B列之
使用:
import pandas as pd
import numpy as np
a = pd.read_csv('Bvitoria_argos.csv', na_values=[' -99999.0'])
数据帧是这样的:
HS Tp
3.0 12.0
2.0 11.3
nan 19.2
nan 5.9
5.6 7.0
目标是根据''HS'‘值替换''Tp'’列中的值,并得到如下内容:
HS Tp
3.0 12.0
2.0 11.3
nan nan
nan nan
5.6 7.0
我正在尝试为我的工作建立一个机器学习算法。我用于训练和测试的数据有17k行和20列。我试着在另外两个列的基础上添加一个新列,但是我编写的for循环太慢了(需要3秒才能执行) for i in range(0, len(model_olculeri)):
if (model_olculeri["Bel"][i] != 0) and (model_olculeri["Basen"][i] != 0):
sum_column = (model_olculeri["Bel"][i]) / (model_olculeri["
本守则的目的是:
创建一个虚拟数据集,其中包含2列,其中25行填充了0到100之间的值。计算数据的峰值和凹槽,并放入一个名为value的新列。为了绘制数据和可视化结果,我需要数值,所以我想创建另外两个列,一个称为峰值,一个称为低谷,包含数值,并与值列中的峰值或低谷值位于同一行。
以下是代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import argrelmax, argrelmin
data = np.random.randint(0, 100,(25
我正在尝试处理用html(或xml )编写的xls数据。IDK)我试过这样做
df = pandas.read_html(r"filename.xls", skiprows=0)
它不是数据帧,而只是列表。所以我就这么做了
df = df[0]
在这之后,我可以做,
print(df)
结果如下所示
0 1 2
0 name age gender
1 john 18 male
2 ryan 20 male
以前,我用其他xlsx文件做过类似的工作,它们工作得很好,但不能用这个文件。
例如,
for index, row in d
我正在使用df.iterrows或df.itertuples遍历大型数据帧。我正在遵循以下链接中询问的示例:
这是
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'))
print df
A B C D
0 0.351741 0.186022 0.238705 0.081457
1 0.950817 0.665594 0.671151 0.73010
我们有一个数据帧: data = [['A1', 'B1'], ['A2', 'B2', 1, 2], ['A3', 'B3', 3, 4], ['A4', 'B4']]
df = pd.DataFrame(data, columns=['A','B','C','D']) 它看起来像这样 A | B | C | D
-------------------
A1 | B1 | NaN | NaN
问题:
给定一个大型数据集(300万行x6列),根据掩码为真的行,在单个熊猫数据帧中连接列值的最快方法是什么?
当前解决方案:
import pandas as pd
import numpy as np
# Note: Real data will be 3 millon rows X 6 columns,
df = pd.DataFrame({'time': ['0', '1', '2', '3'],
'msg': ['msg0', '
您将如何在Pandas中执行以下操作? import math
for index, row in data.iterrows():
if row["year"] == 0:
row["year"] = math.floor((row["death"] - row["birth"])/2) 这个循环不起作用,但我试图做的是,如果列year的值为0,则将差除以死亡和出生列中的2的下限分配给列year。我知道你应该避免在Pandas中使用循环,这可能有一个简单的解决方案,但我现在不能弄明白。
我有一个pandas dataframe,我需要基于if-else条件创建一个新列。这个问题已经在这里出现过多次了(例如,)。
但是,我不能应用所提出的解决方案,因为我还需要在列表中查找值以检查条件。对于提出的解决方案,我无法做到这一点,因为我不确定如何在外部函数中访问我的查找列表。我的查找列表需要是全局的,这是我想要避免的。我有一种感觉,应该有更好的方法来做这件事。
考虑以下数据帧df
letters
A
B
C
D
E
F
我还有一个包含查找值的列表:
lookup = [C,D]
现在,我想在我的数据框架中创建一个新列,如果值不在lookup中,则包含1,如果值包含在lookup中,则包
我有一个数据帧,看起来像这样:
Fruit Cost Quantity Fruit_Copy
Apple 0.5 6 Watermelon
Orange 0.3 2 Orange
Apple 0.5 8 Apple
Apple 0.5 7 Apple
Banana 0.25 8 Banana
Banana 0.25 7 Banana
Apple 0.5 6 Apple
Apple 0.5 3 Apple
我想要编写一个代码片段,在pandas中比较Fruit和Match,并输出一个新的列"Match“
我希望在Pandas数据帧中创建一个新列,其中包含由df行值过滤的列表值。
df = pd.DataFrame({'Index': [0,1,3,2], 'OtherColumn': ['a', 'b', 'c', 'd']})
Index OtherColumn
0 a
1 b
3 c
2 d
l = [1000, 1001, 1002, 1003]
期望产出:
我有一组男性和女性工人的工资数据,由他们的名字表示。
Male Female Male_Wage Female_Wage
James Lori 8 9
Mike Nancy 10 8
Ron Cathy 11 12
Jon Ruth 15 9
Jason Jackie 10 10
在pandas中,我想在数据框中创建一个新列,用于显示收入最高的人员的姓名。
我有一个很大的数据集,但是,我确实有两列,一列用于权重,另一列用于权重单位,我确实想对权重列执行一些计算,但首先我想将它们全部转换为千克,因此有人可以帮助我如何检查单位列,如果我找到它的克数,我会将权重列值转换为千克:
下面是数据集的外观
import pandas as pd
# intialise data of lists.
data = {'Weghts':[2.00, 3.50, 2050.00, 4019.00],'weight_units':['Kilograms', 'kilograms', 'Gra