【问题标题】:Filling a pandas dataframe with repeating values [closed]用重复值填充熊猫数据框[关闭]
【发布时间】:2017-09-05 21:13:40
【问题描述】:

我在 R 中有这段代码

a <- c(NA)
a<- matrix(c(a), nrow = 80)
a<-as.data.frame(a)

a[ c(T,F,F,F), ] <- "aaa"
a[ c(F,T,F,F), ] <- "bbb"
a[ c(F,F,T,F), ] <- "ccc"
a[ c(F,F,F,T), ] <- "ddd"

如何在 python 中将其复制为 pandas 数据框?

str(a)

'data.frame':80 obs。 1 个变量:

$ V1: chr "aaa" "bbb" "ccc" "ddd" ...

【问题讨论】:

  • 您的预期输出是什么?你能证明吗?
  • @cᴏʟᴅsᴘᴇᴇᴅ 我应该为他的 R 代码添加预期的输出吗? :)
  • @Wen 拜托了哥们!
  • @cᴏʟᴅsᴘᴇᴇᴅ 看到a[ c(T,F,F,F), ] &lt;- "ddd" 我认为他会覆盖它。
  • @OP 我建议你花时间写一个有意义的问题。我还注意到您提出了 29 个问题,但只接受了 一个,尽管收到了许多有意义且有用的答案。请查看what to do when someone answers 并养成有意识地接受对您有帮助的答案的习惯。这是感谢社区的一种方式,至少如果你不投票的话。

标签: python pandas dataframe repeat


【解决方案1】:

您可以使用np.tile 并构造一个系列。

import pandas as pd
import numpy as np

s = pd.Series(np.tile(['aaa', 'bbb', 'ccc', 'ddd'], 20) )

print(s.shape) # size - 80 rows
(80,)

print(s.head(10)) # shows only the first 10 rows
0    aaa
1    bbb
2    ccc
3    ddd
4    aaa
5    bbb
6    ccc
7    ddd
8    aaa
9    bbb
dtype: object

如果你想要一个数据框,你会这样做:

df = pd.DataFrame({'V1' : np.tile(['aaa', 'bbb', 'ccc', 'ddd'], 20)})

print(df.head(10))
    V1
0  aaa
1  bbb
2  ccc
3  ddd
4  aaa
5  bbb
6  ccc
7  ddd
8  aaa
9  bbb

处理动态行:

vals = ['aaa', 'bbb', 'ccc', 'ddd', ...]
tiled_vals = np.tile(vals, (80 // len(vals)) + 1 )[:80] # tile and clip to 80

s = pd.Series(tiled_vals)

或者,

df = pd.DataFrame({'V1' : tiled_vals})

【讨论】:

  • 该代码对于 80 行形状是静态的,因为它将 DataFrame 元素的数量乘以您为函数 np.tile 编写的数量。我需要的是满足 80 的要求,因为这个数字恰好是动态的。
  • @anitasp 你没说清楚。无论如何,修复很简单,你可以检查我的编辑。
  • does // 是否等同于 R 的 %%?
  • 我正在运行 pd.Series 和 pd.DataFrame 的代码。对于 pd.DataFrame,该系列会重复,直到它们满足参数 80,对于 pd.Series,它会为该参数相乘。你在那里给了我答案。谢谢。
  • @cs95 很棒的提示!使用“total”、“m”、“f”作为要填充的图块值,顺序是非常随机的。 np.tile 是否按字母顺序填充?
【解决方案2】:

在 Python 中:

['aaa', 'bbb', 'ccc', 'ddd']*20

在R中

rep(c('aaa','bbb','ccc','ddd'),20)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 2019-03-14
    • 1970-01-01
    • 2019-11-30
    • 2016-12-11
    • 2020-06-06
    • 2019-01-05
    • 2020-01-19
    相关资源
    最近更新 更多