鱼C论坛

 找回密码
 立即注册
查看: 306|回复: 6

关于怎样根据列条件去给另一列赋值的

[复制链接]
发表于 2024-5-26 22:04:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图,我有这样一个表,如果“”迟到总分钟“”小于20的,就”20M内迟到扣款“那一列等于0,如果大于20的,就就”20M内迟到扣款“那一列等于“20M内迟到”的数字乘以30,,
微信截图_20240526215938.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-26 22:04:39 | 显示全部楼层
你可以使用条件判断语句来实现这个需求。假设你的表格是一个二维列表,其中每一行代表一个记录,第一列是“迟到总分钟”,第二列是“20M内迟到扣款”。可以按照以下步骤编写代码:

1. 遍历表格的每一行
2. 获取每一行的“迟到总分钟”和“20M内迟到扣款”两个值
3. 使用条件判断语句来判断“迟到总分钟”是否小于20
4. 如果小于20,则将“20M内迟到扣款”赋值为0
5. 如果大于等于20,则将“20M内迟到扣款”赋值为“20M内迟到”的数字乘以30

下面是一个示例代码:
data = [
    ["迟到总分钟", "20M内迟到扣款"],
    [15, 0],
    [25, 0],
    [10, 0],
    [30, 0]
]

for i in range(1, len(data)):
    minutes = data[i][0]  # 获取当前行的迟到总分钟
    deduction = data[i][1]  # 获取当前行的20M内迟到扣款
    
    if minutes < 20:
        data[i][1] = 0
    else:
        data[i][1] = minutes * 30

# 打印修改后的表格
for row in data:
    print(row)

运行代码后,你会得到修改后的表格数据。注意,示例中假设表格的第一行是标题行,从第二行开始才是数据行,因此在遍历表格时使用了`range(1, len(data))`来跳过标题行。你可以根据自己的实际情况进行调整。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-26 22:05:30 | 显示全部楼层
FishC 发表于 2024-5-26 22:04
你可以使用条件判断语句来实现这个需求。假设你的表格是一个二维列表,其中每一行代表一个记录,第一列是“ ...

我的是用pandas库得到这个DF的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-26 22:05:45 | 显示全部楼层
laiyuanjie 发表于 2024-05-26 22:05
我的是用pandas库得到这个DF的


如果你使用的是pandas库来处理数据,可以使用DataFrame的条件判断和向量化操作来实现。假设你的DF叫做`df`,包含了两列数据"迟到总分钟"和"20M内迟到扣款",你可以按照以下步骤进行操作:
import pandas as pd

# 创建示例数据
data = {
    '迟到总分钟': [10, 30, 15, 25],
    '20M内迟到扣款': [0, 0, 0, 0]
}
df = pd.DataFrame(data)

# 使用条件判断和向量化操作赋值
df['20M内迟到扣款'] = df['迟到总分钟'].apply(lambda x: 0 if x < 20 else x * 30)

# 打印修改后的DF
print(df)

运行以上代码,你会得到修改后的DF数据。

首先,我们导入了pandas库。然后,通过字典创建了一个示例的数据字典,并使用该字典创建了一个DataFrame对象df。接下来,通过`df['迟到总分钟'].apply(lambda x: 0 if x < 20 else x * 30)`这一行代码,使用向量化操作对"20M内迟到扣款"列进行赋值。该行代码中,我们使用了apply函数来对每个元素进行操作,并使用lambda函数来进行条件判断和赋值操作。最后,我们打印修改后的DF数据。

请注意,在实际使用时,你需要替换示例代码中的示例数据为你自己的数据。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-26 22:11:39 | 显示全部楼层
FishC 发表于 2024-5-26 22:05
如果你使用的是pandas库来处理数据,可以使用DataFrame的条件判断和向量化操作来实现。假设你的DF叫做` ...

你这样变成这个‘’20M内迟到扣款'这一列是用“迟到总分钟”去乘以30了啊,,我要的是,如果“迟到总分钟”列大于20,就‘’20M内迟到扣款'这一列等于“20M内迟到”的数字乘以30,如果小于20,就‘’20M内迟到扣款'这一列等于0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-26 22:11:57 | 显示全部楼层
laiyuanjie 发表于 2024-05-26 22:11
你这样变成这个‘’20M内迟到扣款'这一列是用“迟到总 ...


非常抱歉,我理解错误了你的需求。以下是一个根据条件给另一列赋值的示例代码,满足你的要求:
import pandas as pd

# 创建示例数据
data = {
    '迟到总分钟': [10, 25, 15, 30],
    '20M内迟到扣款': [0, 0, 0, 0]
}
df = pd.DataFrame(data)

# 根据条件给另一列赋值
df.loc[df['迟到总分钟'] > 20, '20M内迟到扣款'] = df['20M内迟到'] * 30
df.loc[df['迟到总分钟'] < 20, '20M内迟到扣款'] = 0

# 打印修改后的DF
print(df)

运行代码后,你会得到修改后的DF数据。首先,我们创建了一个示例的DataFrame对象`df`,其中包含了"迟到总分钟"和"20M内迟到扣款"两列数据。然后,使用`.loc`方法结合条件判断,将满足条件的行的"20M内迟到扣款"列赋值为"20M内迟到"列的值乘以30;再次使用`.loc`方法,将不满足条件的行的"20M内迟到扣款"列赋值为0。最后,打印修改后的DF数据。

请注意,在实际使用时,你需要替换示例代码中的示例数据为你自己的数据。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-27 10:01:40 | 显示全部楼层
要用Python处理这个Excel表格中的数据,并按照给定的条件进行计算。

鱼油可以使用pandas库来读取和修改Excel文件。

个示例:

1.安装pandas和openpyxl

如果还未安装pandas和openpyxl(用于读写Excel文件),你可以通过pip安装它们:
pip install pandas openpyxl


2.编写代码

使用以下Python代码来修改表格:
import pandas as pd

#加载Excel文件
file_path='path_to_your_excel_file.xlsx'#这里替换成你的Excel文件路径
sheet_name='Sheet1'#根据实际情况调整表格名

#读取Excel文件
df=pd.read_excel(file_path,sheet_name=sheet_name)

#根据条件计算“20M内迟到扣款”
#假设“迟到总分钟”的列名是"TotalMinutesLate"
#“20M内迟到”的列名是"20M内迟到"
#“20M内迟到扣款”的列名是"20M内迟到扣款"
df['20M内迟到扣款']=df.apply(lambdarow:row['20M内迟到']*30ifrow['TotalMinutesLate']>20else0,axis=1)

#将修改后的数据框写回Excel文件,不覆盖原始文件可以选择另存为新文件
output_path='modified_'+file_path#新文件路径
df.to_excel(output_path,index=False)index=False#意味着不写行索引到文件


3.代码解释

加载Excel文件:指定文件路径和表名。

读取数据:使用pandas.read_excel函数读取数据。

计算扣款:使用DataFrame.apply方法来对每一行应用自定义的函数,根据“迟到总分钟”计算“20M内迟到扣款”。

lambda函数检查如果“迟到总分钟”大于20分钟,则将“20M内迟到”列的值乘以30,否则设为0。

保存修改后的文件:最后使用DataFrame.to_excel方法将修改后的数据保存到新的Excel文件。

确保更新文件路径和列名以匹配你的实际Excel文件结构。

这个代码将自动处理Excel表格中的每一行,根据提供的条件更新“20M内迟到扣款”列的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表