【问题标题】:Pandas dataframe - move rows from one dataframe to anotherPandas 数据框 - 将行从一个数据框移动到另一个数据框
【发布时间】:2016-06-09 13:13:11
【问题描述】:

我有一个包含 3 行的 python pandas 数据框:

Name  Time  count
AAA   5:45  5
BBB   13:01 8
CCC   11:16 3

我正在尝试遍历这个数据帧,如果计数大于 5,我必须将该行填充到一个新的数据帧。我知道函数的计数是 2,因为只有 2 行大于 5。我尝试了下面的代码,但它不起作用。任何帮助将不胜感激。

for i in range(2):
  if(row['Occurences'] >= 5 ):
    df6.loc[i] = [df4['MachineName'], df4['DateTime'], df4['Count']]
df6

我试过这段代码 - res 是空的,我正在根据条件将行附加到 res。

res = pd.DataFrame(columns=('MachineName', 'DateTime', 'Occurences'))
print(pd.concat([res, df4[df4['Occurences'] >= 5]]))
res

【问题讨论】:

  • 对不起,你是在df4[df4['Count'] >= 5]之后吗?

标签: python pandas dataframe ipython


【解决方案1】:

您只能使用 boolean indexing,正如 Edchum 在 comment 中提到的那样:

import pandas as pd

df4 = pd.DataFrame({'Name': {0: 'AAA', 1: 'BBB', 2: 'CCC'}, 
                    'Time': {0: '5:45', 1: '13:01', 2: '11:16'}, 
                    'count': {0: 5, 1: 8, 2: 3}})
print (df4)
  Name   Time  count
0  AAA   5:45      5
1  BBB  13:01      8
2  CCC  11:16      3

res = pd.DataFrame(columns=('MachineName', 'DateTime', 'Occurences'))
res = pd.concat([res, df4[df4['count'] >= 5]])
print (res)
  DateTime MachineName Name Occurences   Time  count
0      NaN         NaN  AAA        NaN   5:45    5.0
1      NaN         NaN  BBB        NaN  13:01    8.0

【讨论】:

  • 谢谢,我已经编辑了我的输出约束问题。我无法打印我们附加行的结果数据集。
  • 为什么不能写?什么样的错误? dfdf4 中的列名是否相同?
  • 我已经编辑了问题,“res”返回空数据框。
  • 我也编辑了答案,首先我认为您需要将行附加到现有的DataFrame
  • 抱歉,我想你忘记了res = - 将concat 的输出获取到res
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多