Как добавить DataFrame к себе эффективным способом в python? [Дубликат]

Существует множество механизмов для этого, в зависимости от того, какую версию браузера вы используете. Для любого браузера, если адрес назначения превышает HTTP, вы можете «отмыть» происхождение, перенаправив его на страницу HTTPS, которая затем перейдет на целевую страницу.

Для IE вы можете выполнять навигацию с использованием JavaScript ( например window.open), который подавит рефери. Или вы можете использовать META Refresh, но для этого существует первоочередная стоимость. Для браузеров на базе WebKit см. Параметр NoReferrer LINK REL: http://www.webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/

26
задан lsheng 27 May 2014 в 12:09
поделиться

5 ответов

Вы можете использовать функцию concat:

In [13]: pd.concat([x]*5)
Out[13]: 
   a  b
0  1  2
0  1  2
0  1  2
0  1  2
0  1  2

Если вы хотите только повторить значения, а не индекс, вы можете сделать:

In [14]: pd.concat([x]*5, ignore_index=True)
Out[14]: 
   a  b
0  1  2
1  1  2
2  1  2
3  1  2
4  1  2
42
ответ дан joris 17 August 2018 в 10:28
поделиться

Я думаю, что теперь использовать iloc в настоящее время:

In [11]: np.full(3, 0)
Out[11]: array([0, 0, 0])

In [12]: x.iloc[np.full(3, 0)]
Out[12]:
   a  b
0  1  2
0  1  2
0  1  2

. В более общем плане вы можете использовать tile или repeat с arange :

In [21]: df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])

In [22]: df
Out[22]:
   A  B
0  1  2
1  3  4

In [23]: np.tile(np.arange(len(df)), 3)
Out[23]: array([0, 1, 0, 1, 0, 1])

In [24]: np.repeat(np.arange(len(df)), 3)
Out[24]: array([0, 0, 0, 1, 1, 1])

In [25]: df.iloc[np.tile(np.arange(len(df)), 3)]
Out[25]:
   A  B
0  1  2
1  3  4
0  1  2
1  3  4
0  1  2
1  3  4

In [26]: df.iloc[np.repeat(np.arange(len(df)), 3)]
Out[26]:
   A  B
0  1  2
0  1  2
0  1  2
1  3  4
1  3  4
1  3  4

Примечание. Это будет работать с нецелочисленными индексированными DataFrames (и Series).

6
ответ дан Andy Hayden 17 August 2018 в 10:28
поделиться

Я бы вообще не повторял и / или добавлял, если только ваша проблема не делает это необходимым - это очень неэффективно, а обычно происходит из-за непонимания надлежащего способа атаки на проблему.

Я не знаю вашего конкретного варианта использования, но если у вас есть ваши значения, сохраненные как

,
values = array(1, 2)
df2 = pd.DataFrame(index=arange(0,50),  columns=['a', 'b'])
df2[['a', 'b']] = values

выполнит задание. Возможно, вы хотите лучше объяснить, чего вы пытаетесь достичь?

1
ответ дан FooBar 17 August 2018 в 10:28
поделиться
  • 1
    У меня есть кадр данных, который не имеет одной строки для каждого идентификатора. Я хочу вставить в нее эту строку, так что я собираюсь сделать это, чтобы повторить эту строку в течение N раз и добавить ее в исходный фрейм данных, а затем прибегнуть к ней. – lsheng 27 May 2014 в 12:37

Приложение тоже должно работать:

In [589]: x = pd.DataFrame({'a':1,'b':2},index = range(1))

In [590]: x
Out[590]: 
   a  b
0  1  2

In [591]: x.append([x]*5, ignore_index=True) #Ignores the index as per your need
Out[591]: 
   a  b
0  1  2
1  1  2
2  1  2
3  1  2
4  1  2
5  1  2

In [592]: x.append([x]*5)
Out[592]: 
   a  b
0  1  2
0  1  2
0  1  2
0  1  2
0  1  2
0  1  2
0
ответ дан Surya 17 August 2018 в 10:28
поделиться
0
ответ дан U9-Forward 6 September 2018 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: