gpt4 book ai didi

python - 如何使用 .loc 在 for 循环中将数据帧行追加到另一个数据帧行?

转载 作者:行者123 更新时间:2023-12-01 01:15:46 24 4
gpt4 key购买 nike

假设我有以下数据框:

df_t1 = pd.DataFrame([["AAA", 1 ,2],["BBB", 0, 3],["CCC", 1, 2],["DDD", 0, 0],["EEE", 0, 3]], columns=list('ABC'))

A B C
0 AAA 1 2
1 BBB 0 3
2 CCC 1 2
3 DDD 0 0
4 EEE 0 3

df_t2 = pd.DataFrame([["XXX", 4, 1],["YYY", 5 ,6],["ZZZ", 0, 3]], columns=list('ABC'))

A B C
0 XXX 4 1
1 YYY 5 6
2 ZZZ 0 3

我可以使用下面的代码找到 df_t1 中满足特定条件的行:

df_t1.loc[(df_t1['B'] <= 2) & (df_t1['C'] > 2)]

A B C
1 BBB 0 3
4 EEE 0 3

df_t1.loc[(df_t1['B'] <= 3) & (df_t1['C'] > 3)]

A B C
[Empty Dataframe]

我可以创建一个返回相同结果的 for 循环:

for i in value_check:
print(df_t1.loc[(df_t1['B'] <= i) & (df_t1['C'] > i)])

A B C
1 BBB 0 3
4 EEE 0 3
Empty DataFrame
Columns: [A, B, C]
Index: []

但是当我尝试使用该代码将这些值附加到 df_t2 时:

value_check = [2,3]

for i in value_check:
df_t2.append(df_t1.loc[(df_t1['B'] <= i) & (df_t1['C'] > i)])

df_t2 不变

最佳答案

使用pd.concat

df_t1 = pd.DataFrame([["AAA", 1 ,2],["BBB", 0, 3],["CCC", 1, 2],["DDD", 0, 0],["EEE", 0, 3]], columns=list('ABC'))

df_t2 = pd.DataFrame([["XXX", 4, 1],["YYY", 5 ,6],["ZZZ", 0, 3]], columns=list('ABC'))

value_check = [2, 3]

for i in value_check:
condition = (df_t1['B'] <= i) & (df_t1['C'] > i)
row_to_add = df_t1.loc[condition]

df_t2 = pd.concat([df_t2, row_to_add], axis=0)

关于python - 如何使用 .loc 在 for 循环中将数据帧行追加到另一个数据帧行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54357005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com