在 Pandas DataFrame 中复制其他单元格的值 [重复]

Posted

技术标签:

【中文标题】在 Pandas DataFrame 中复制其他单元格的值 [重复]【英文标题】:Copying values of other cells in Pandas DataFrame [duplicate] 【发布时间】:2019-05-05 18:42:27 【问题描述】:

所以我想要完成的是,每次在我的数据框中,我都会找到缺少日期和前五列其余部分的行,复制其上方行的值。示例:

0| Date      | Name | Amount | Address
1| 12/04/2018| Pepe | $1.00  | Avenue 1
2| NaT       | NaN  |  NaN   |  NaN (In this line i need the values of the line above)
3| 1/04/2018 | Tito |  $3.00 |  Avenue 2

.

for file in files:
  fileName = os.path.splitext(file)[0]
  if fileName == 'xxxxxxx (copy)':
    df = pd.read_excel(file)
        for index, row in df.iterrows():
          if pd.isna(df['Date'] 'And the rest of the 5 columns'):
            #Copy the values of the line above it

【问题讨论】:

ffill 是你想要的吗?但你为什么要这个? ffill 到数据框会对您的 df 造成严重损害。它会简单地删除所有NaN,这可能是你不想做的。此外,在您的数据框中,如果您的所有行都是空的,为什么不能从您的 df 中删除这些记录,而不是创建一个副本? df.dropna(how='all') 我需要这个,因为每一行都是我们支付的收据,所以我收到一个带有这些数据的 xlsx,我用 pandas 读取它,如果有一行包含前五个空列 (NaN) 是我们支付给同一客户或提供商的另一张收据。正如您在示例中看到的那样,希望这听起来很清楚。 【参考方案1】:

所以我解决了它,使用 ffill(forward fill) 方法,这里是代码:

for file in files:
  fileName = os.path.splitext(file)[0]
  if fileName == 'File1':
    df = pd.read_excel(file)
    new_df = df.fillna(method="ffill")
    writer = pd.ExcelWriter('File1.xlsx', engine='xlsxwriter')
    new_df.to_excel(writer, 'Sheet 1')
    writer.save()

【讨论】:

【参考方案2】:

使用ffill() 继续上一行。

例子:

# Given
df = pd.DataFrame('word':['Alpha', np.NaN, 'Charlie'],
                  'Percentage 1':[10, np.NaN, 0],
                  'Percentage 2': [5, np.NaN, 4])
df
    word    Percentage 1    Percentage 2
0   Alpha   10.0             5.0
1   NaN     NaN              NaN
2   Charlie 0.0              4.0

df = df.ffill()

   word     Percentage 1    Percentage 2
0  Alpha    10.0            5.0
1  Alpha    10.0            5.0
2  Charlie  0.0             4.0

【讨论】:

我不明白 ffill() 如何用下面的值填充“NaN”值?

以上是关于在 Pandas DataFrame 中复制其他单元格的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Python Pandas 中的其他列在 DataFrame 中创建新列? [复制]

pandas DataFrame:规范化一个 JSON 列并与其他列合并

在使用 jupyter notebook 时如何在 pandas 中使用 Dataframe 时查看完整数据? [复制]

pandas对dataframe进行排序:单数据列排序多数据列排序NA值排序位置排序算法

如何将 GitHub 制作成 pandas DataFrame? [复制]

Pandas Dataframe:如何将一列拆分为多个单热编码列[重复]