再現性の高いパンダの例を作成する方法

220
Marius 2013-11-21 13:31.

SOでrタグとpandasタグの両方を見るのにかなりの時間を費やしたので、pandas質問に再現可能なデータが含まれる可能性が低いという印象を受けました。これは、Rコミュニティが奨励することについてかなり優れていることであり、優れたRの再現可能な例を作成する方法ようなガイドのおかげで、初心者はこれらの例をまとめるのにいくらかの助けを得ることができます。これらのガイドを読んで再現可能なデータを返すことができる人は、多くの場合、質問に対する回答を得ることがはるかに幸運になります。

pandas質問に対して再現性のある優れた例を作成するにはどうすればよいですか?単純なデータフレームをまとめることができます。例:

import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'], 
                   'income': [40000, 50000, 42000]})

ただし、多くのサンプルデータセットには、より複雑な構造が必要です。

  • datetime インデックスまたはデータ
  • 複数のカテゴリ変数(expand.grid()特定の変数のすべての可能な組み合わせを生成するRの関数に相当するものはありますか?)
  • マルチインデックスまたはパネルデータ

数行のコードを使用してモックアップするのが難しいデータセットの場合、dput()コピーアンドペースト可能なコードを生成してデータ構造を再生成できるRに相当するものはありますか?

5 answers

362
Andy Hayden 2013-11-23 20:19.

注:ここでのアイデアは、スタックオーバーフローに対してかなり一般的であり、確かに質問です。

免責事項:良い質問を書くことは難しいです。

いいもの:

  • 実行可能なコードとして、小さい*サンプルのDataFrameを含めます。

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

    または、を使用して「コピーして貼りpd.read_clipboard(sep='\s\s+')付ける」には、スタックオーバーフローのハイライトのテキストをフォーマットしてCtrl+を使用するKか(または各行に4つのスペースを追加)、コードをインデントせずにコードの上下に3つのチルダを配置します。

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

    pd.read_clipboard(sep='\s\s+')自分でテストしてください。

    *私は本当に小さいことを意味します。サンプルのデータフレームの大部分は、必要な6行未満の引用である可能性があり、5行で実行できるに違いありませんでエラーを再現できますdf = df.head()か?いじくり回して、直面している問題を示す小さなDataFrameを作成できるかどうかを確認してください。

    *すべてのルールには例外がありますが、明らかなものはパフォーマンスの問題(この場合は必ず%timeitと場合によっては%prunを使用)であり、生成する必要があります(np.random.seedを使用することを検討してくださいdf = pd.DataFrame(np.random.randn(100000000, 10))。まったく同じフレームになります)。「このコードを私のために速くする」と言っても、サイトのトピックは厳密ではありません...

  • あなたが望む結果を書きなさい(上記と同様に)

    In [3]: iwantthis
    Out[3]: 
       A  B
    0  1  5
    1  4  6
    

    数字の由来を説明してください。5は、Aが1である行のB列の合計です。

  • 試したコードを表示しください:

    In [4]: df.groupby('A').sum()
    Out[4]: 
       B
    A   
    1  5
    4  6
    

    しかし、何が間違っているかを言ってください。A列は列ではなくインデックスにあります。

  • あなたがいくつかの調査を行ったことを示してください(ドキュメント検索し、StackOverflowを検索してください)、要約を与えてください:

    sumのdocstringは、単に「グループ値の合計を計算する」と述べています。

    GROUPBYのドキュメントは、このための任意の例を与えることはありません。

    余談ですが、ここでの答えはを使用することdf.groupby('A', as_index=False).sum()です。

  • リサンプリングなどのタイムスタンプ列があることが適切な場合は、明示的に適用pd.to_datetimeして適切な測定を行ってください**。

    df['date'] = pd.to_datetime(df['date']) # this column ought to be date..
    

    **時々これは問題そのものです:それらは文字列でした。

悪い人:

  • コピーして貼り付けることができないMultiIndexを含めないでください(上記を参照)。これは、パンダのデフォルト表示に対する不満のようなものですが、それでも厄介です。

    In [11]: df
    Out[11]:
         C
    A B   
    1 2  3
      2  6
    

    正しい方法は、set_index呼び出しに通常のDataFrameを含めることです。

    In [12]: df = pd.DataFrame([[1, 2, 3], [1, 2, 6]], columns=['A', 'B', 'C']).set_index(['A', 'B'])
    
    In [13]: df
    Out[13]: 
         C
    A B   
    1 2  3
      2  6
    
  • あなたが望む結果を与えるとき、それが何であるかについての洞察を提供してください:

       B
    A   
    1  1
    5  0
    

    数字をどのように取得したか(それらは何ですか)について具体的に説明してください...それらが正しいことを再確認してください。

  • コードがエラーをスローする場合は、スタックトレース全体を含めてください(ノイズが多すぎる場合は、後で編集できます)。行番号(およびそれが発生しているコードの対応する行)を表示します。

ぶさいく:

  • アクセスできないcsvにリンクしないでください(理想的には、外部ソースにまったくリンクしないでください...)

    df = pd.read_csv('my_secret_file.csv')  # ideally with lots of parsing options
    

    ほとんどのデータは独自のものであり、次のようになります。同様のデータを作成し、問題を再現できるかどうかを確認します(小さなもの)。

  • 「大きい」DataFrameがあるように、状況を漠然と言葉で説明しないでください。通過する列名のいくつかに言及してください(dtypeには言及しないでください)。実際のコンテキストを見ずに、まったく意味のないことについて多くの詳細を調べてみてください。おそらく、この段落の最後まで読む人は誰もいないでしょう。

    エッセイは悪いです、それは小さな例で簡単です。

  • 実際の質問に進む前に、10行以上(100行以上??)のデータの変更を含めないでください。

    どうか、私たちは日常の仕事でこれを十分に見ています。私たちは、しかし、助けたいではない。このような...
    イントロを切り取り、問題を引き起こしているステップで関連するDataFrame(またはそれらの小さなバージョン)を表示するだけです。

とにかく、Python、NumPy、Pandasを楽しんでください!

77
JohnE 2015-05-25 04:22.

サンプルデータセットの作成方法

これは主に、サンプルデータフレームを作成する方法の例を提供することにより、@ AndyHaydenの回答を拡張することです。Pandasと(特に)numpyは、このためのさまざまなツールを提供します。これにより、通常、数行のコードで実際のデータセットの妥当な複製を作成できます。

numpyとpandasをインポートした後、データと結果を正確に再現できるようにする場合は、必ずランダムシードを提供してください。

import numpy as np
import pandas as pd

np.random.seed(123)

台所の流しの例

これはあなたができるさまざまなことを示す例です。あらゆる種類の有用なサンプルデータフレームは、次のサブセットから作成できます。

df = pd.DataFrame({ 

    # some ways to create random data
    'a':np.random.randn(6),
    'b':np.random.choice( [5,7,np.nan], 6),
    'c':np.random.choice( ['panda','python','shark'], 6),

    # some ways to create systematic groups for indexing or groupby
    # this is similar to r's expand.grid(), see note 2 below
    'd':np.repeat( range(3), 2 ),
    'e':np.tile(   range(2), 3 ),

    # a date range and set of random dates
    'f':pd.date_range('1/1/2011', periods=6, freq='D'),
    'g':np.random.choice( pd.date_range('1/1/2011', periods=365, 
                          freq='D'), 6, replace=False) 
    })

これにより、次のものが生成されます。

          a   b       c  d  e          f          g
0 -1.085631 NaN   panda  0  0 2011-01-01 2011-08-12
1  0.997345   7   shark  0  1 2011-01-02 2011-11-10
2  0.282978   5   panda  1  0 2011-01-03 2011-10-30
3 -1.506295   7  python  1  1 2011-01-04 2011-09-07
4 -0.578600 NaN   shark  2  0 2011-01-05 2011-02-27
5  1.651437   7  python  2  1 2011-01-06 2011-02-03

いくつかの注意:

  1. np.repeatおよびnp.tile(列de)は、非常に定期的な方法でグループとインデックスを作成するのに非常に役立ちます。2列の場合、これを使用してrを簡単に複製できますがexpand.grid()、すべての順列のサブセットを提供する機能もより柔軟になります。ただし、3列以上の場合、構文はすぐに扱いにくくなります。
  2. rのより直接的な置き換えについては、パンダクックブックの解決策またはPythonのRexpand.grid()関数示されてexpand.grid()いるitertools解決策を参照してPythonのRexpand.grid()関数。それらは任意の数の次元を許可します。np.meshgridPythonのRexpand.grid()関数
  3. でかなりのことができますnp.random.choice。たとえば、列gでは、2011年から6つの日付をランダムに選択しています。さらに、設定replace=Falseすることで、これらの日付が一意であることを保証できます。これを一意の値を持つインデックスとして使用する場合に非常に便利です。

偽の株式市場データ

上記のコードのサブセットを取得することに加えて、テクニックをさらに組み合わせて、ほぼすべてのことを実行できます。例えば、ここに組み合わせた簡単な例だnp.tiledate_range、同じ日付をカバーする4つの銘柄のサンプルティッカー・データを作成するには:

stocks = pd.DataFrame({ 
    'ticker':np.repeat( ['aapl','goog','yhoo','msft'], 25 ),
    'date':np.tile( pd.date_range('1/1/2011', periods=25, freq='D'), 4 ),
    'price':(np.random.randn(100).cumsum() + 10) })

これで、100行(ティッカーあたり25日付)のサンプルデータセットができましたが、4行しか使用していないため、100行のコードをコピーして貼り付けることなく、他のすべての人が簡単に複製できます。質問の説明に役立つ場合は、データのサブセットを表示できます。

>>> stocks.head(5)

        date      price ticker
0 2011-01-01   9.497412   aapl
1 2011-01-02  10.261908   aapl
2 2011-01-03   9.438538   aapl
3 2011-01-04   9.515958   aapl
4 2011-01-05   7.554070   aapl

>>> stocks.groupby('ticker').head(2)

         date      price ticker
0  2011-01-01   9.497412   aapl
1  2011-01-02  10.261908   aapl
25 2011-01-01   8.277772   goog
26 2011-01-02   7.714916   goog
50 2011-01-01   5.613023   yhoo
51 2011-01-02   6.397686   yhoo
75 2011-01-01  11.736584   msft
76 2011-01-02  11.944519   msft
51
piRSquared 2016-07-20 08:35.

回答者の日記

質問をするための私の最善のアドバイスは、質問に答える人々の心理学で遊ぶことです。それらの人々の一人である私は、なぜ私が特定の質問に答えるのか、そしてなぜ私が他の質問に答えないのかについて洞察を与えることができます。

動機

私はいくつかの理由で質問に答える動機があります

  1. Stackoverflow.comは、私にとって非常に貴重なリソースです。恩返ししたかった。
  2. 恩返しの努力の中で、このサイトは以前よりもさらに強力なリソースであることがわかりました。質問に答えることは私にとって学習体験であり、私は学びたいと思っています。 この回答を読み、別の獣医からコメントしてください。このような交流は私を幸せにします。
  3. ポイントが好き!
  4. #3を参照してください。
  5. 私は面白い問題が好きです。

私の最も純粋な意図はすべて素晴らしく、すべてですが、1つまたは30の質問に答えると、その満足感が得られますどの質問に答えるかを選択する理由は、ポイント最大化の大きな要素です。

私も興味深い問題に時間を費やしますが、それはほんのわずかであり、興味のない質問の解決策を必要とする質問者の助けにはなりません。私に質問に答えてもらうための最善の策は、できるだけ少ない労力で答えられるように熟した大皿にその質問を提供することです。2つの質問を見ていて、1つにコードがある場合は、コピーして貼り付けて、必要なすべての変数を作成できます...私はそれを使用しています!時間があればもう一方に戻ってきます。

主なアドバイス

質問に答える人々が簡単にできるようにします。

  • 必要な変数を作成するコードを提供します。
  • そのコードを最小化します。投稿を見ているときに目が眩む場合は、次の質問に進むか、他の作業に戻ります。
  • あなたが求めていることを考え、具体的にしてください。自然言語(英語)は不正確で紛らわしいので、あなたが何をしたかを見たいと思います。試したことのコードサンプルは、自然言語の説明の矛盾を解決するのに役立ちます。
  • あなたが期待するものを見せてください!!! 私は座って物事を試さなければなりません。いくつかのことを試さずに、質問に対する答えを知ることはほとんどありません。あなたが探しているものの例が見当たらない場合、私は推測したくないので質問を渡すかもしれません。

あなたの評判はあなたの評判以上のものです。

私はポイントが好きです(私はそれを上で述べました)。しかし、それらの点は実際には私の評判ではありません。私の本当の評判は、サイト上の他の人が私について考えていることの融合です。私は公正で正直になるよう努めており、他の人にもそれを見てもらいたいと思っています。それが質問者にとって意味することは、質問者の行動を覚えているということです。あなたが答えを選ばず、良い答えに賛成しないなら、私は覚えています。あなたが私が好きではない、または私が好きな方法で行動するなら、私は覚えています。これは、私がどの質問に答えるかにも影響します。


とにかく、私はおそらく続けることができますが、実際にこれを読んでいるすべての人を惜しまないでしょう。

31
Alexander 2015-09-12 21:06.

チャレンジSOの質問への応答の中で最も挑戦的な側面の一つは、それが(データを含む)問題を再現するのにかかる時間です。データを再現する明確な方法がない質問には、回答される可能性が低くなります。時間をかけて質問を書き、助けたい問題がある場合は、他の人が問題の解決に使用できるデータを提供することで、簡単に自分自身を助けることができます。

良いパンダの質問を書くために@Andyによって提供された指示は、始めるのに最適な場所です。詳細については、質問する方法と、最小限、完全、および検証可能な例を作成する方法を参照してください。

事前に質問を明確に述べてください。 時間をかけて質問とサンプルコードを書いた後、それを読んで、問題を要約し、質問を明確に述べた「エグゼクティブサマリー」を読者に提供してください。

元の質問

私はこのデータを持っています...

これをやりたい...

結果を次のようにしたいと思います...

しかし、[これ]を実行しようとすると、次の問題が発生します...

私は[これ]と[それ]を行うことによって解決策を見つけようとしました。

どうすれば修正できますか?

提供されるデータの量、サンプルコード、およびエラースタックに応じて、読者は問題が何であるかを理解する前に長い道のりを進む必要があります。質問自体が一番上になるように質問を書き直してから、必要な詳細を入力してください。

改訂された質問

質問: どうすれば[これ]できますか?

私は[これ]と[それ]を行うことによって解決策を見つけようとしました。

[これ]を実行しようとすると、次の問題が発生します...

最終結果を次のようにしたいと思います...

これが私の問題を再現できる最小限のコードです...

サンプルデータを再作成する方法は次のとおりです。 df = pd.DataFrame({'A': [...], 'B': [...], ...})

必要に応じてサンプルデータを提供してください!!!

必要なのは、DataFrameの先頭または末尾だけである場合もあります。@JohnEによって提案された方法を使用して、他の人が再現できるより大きなデータセットを作成することもできます。彼の例を使用して、株価の100行のDataFrameを生成します。

stocks = pd.DataFrame({ 
    'ticker':np.repeat( ['aapl','goog','yhoo','msft'], 25 ),
    'date':np.tile( pd.date_range('1/1/2011', periods=25, freq='D'), 4 ),
    'price':(np.random.randn(100).cumsum() + 10) })

これが実際のデータである場合は、次のようにデータフレームの先頭または末尾、あるいはその両方を含めることをお勧めします(機密データは必ず匿名化してください)。

>>> stocks.head(5).to_dict()
{'date': {0: Timestamp('2011-01-01 00:00:00'),
  1: Timestamp('2011-01-01 00:00:00'),
  2: Timestamp('2011-01-01 00:00:00'),
  3: Timestamp('2011-01-01 00:00:00'),
  4: Timestamp('2011-01-02 00:00:00')},
 'price': {0: 10.284260107718254,
  1: 11.930300761831457,
  2: 10.93741046217319,
  3: 10.884574289565609,
  4: 11.78005850418319},
 'ticker': {0: 'aapl', 1: 'aapl', 2: 'aapl', 3: 'aapl', 4: 'aapl'}}

>>> pd.concat([stocks.head(), stocks.tail()], ignore_index=True).to_dict()
{'date': {0: Timestamp('2011-01-01 00:00:00'),
  1: Timestamp('2011-01-01 00:00:00'),
  2: Timestamp('2011-01-01 00:00:00'),
  3: Timestamp('2011-01-01 00:00:00'),
  4: Timestamp('2011-01-02 00:00:00'),
  5: Timestamp('2011-01-24 00:00:00'),
  6: Timestamp('2011-01-25 00:00:00'),
  7: Timestamp('2011-01-25 00:00:00'),
  8: Timestamp('2011-01-25 00:00:00'),
  9: Timestamp('2011-01-25 00:00:00')},
 'price': {0: 10.284260107718254,
  1: 11.930300761831457,
  2: 10.93741046217319,
  3: 10.884574289565609,
  4: 11.78005850418319,
  5: 10.017209045035006,
  6: 10.57090128181566,
  7: 11.442792747870204,
  8: 11.592953372130493,
  9: 12.864146419530938},
 'ticker': {0: 'aapl',
  1: 'aapl',
  2: 'aapl',
  3: 'aapl',
  4: 'aapl',
  5: 'msft',
  6: 'msft',
  7: 'msft',
  8: 'msft',
  9: 'msft'}}

DataFrameの説明を提供することもできます(関連する列のみを使用)。これにより、他のユーザーが各列のデータ型を確認し、他の一般的なエラー(たとえば、文字列としての日付、datetime64、オブジェクトなど)を簡単に特定できます。

stocks.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 100 entries, 0 to 99
Data columns (total 3 columns):
date      100 non-null datetime64[ns]
price     100 non-null float64
ticker    100 non-null object
dtypes: datetime64[ns](1), float64(1), object(1)

注:DataFrameにMultiIndexがある場合:

DataFrameに多重指数がある場合は、を呼び出す前に最初にリセットする必要がありますto_dict。次に、以下を使用してインデックスを再作成する必要がありますset_index

# MultiIndex example.  First create a MultiIndex DataFrame.
df = stocks.set_index(['date', 'ticker'])
>>> df
                       price
date       ticker           
2011-01-01 aapl    10.284260
           aapl    11.930301
           aapl    10.937410
           aapl    10.884574
2011-01-02 aapl    11.780059
...

# After resetting the index and passing the DataFrame to `to_dict`, make sure to use 
# `set_index` to restore the original MultiIndex.  This DataFrame can then be restored.

d = df.reset_index().to_dict()
df_new = pd.DataFrame(d).set_index(['date', 'ticker'])
>>> df_new.head()
                       price
date       ticker           
2011-01-01 aapl    10.284260
           aapl    11.930301
           aapl    10.937410
           aapl    10.884574
2011-01-02 aapl    11.780059
15
sds 2016-12-17 07:57.

これが私のバージョンであるdput-再現可能なレポートを作成するための標準的なRツール-Pandas用DataFrameです。より複雑なフレームではおそらく失敗しますが、単純なケースではうまくいくようです。

import pandas as pd
def dput(x):
    if isinstance(x,pd.Series):
        return "pd.Series(%s,dtype='%s',index=pd.%s)" % (list(x),x.dtype,x.index)
    if isinstance(x,pd.DataFrame):
        return "pd.DataFrame({" + ", ".join([
            "'%s': %s" % (c,dput(x[c])) for c in x.columns]) + (
                "}, index=pd.%s)" % (x.index))
    raise NotImplementedError("dput",type(x),x)

今、

df = pd.DataFrame({'a':[1,2,3,4,2,1,3,1]})
assert df.equals(eval(dput(df)))
du = pd.get_dummies(df.a,"foo")
assert du.equals(eval(dput(du)))
di = df
di.index = list('abcdefgh')
assert di.equals(eval(dput(di)))

これによりDataFrame.to_dict、たとえば、よりもはるかに詳細な出力が生成されることに注意しください

pd.DataFrame({
  'foo_1':pd.Series([1, 0, 0, 0, 0, 1, 0, 1],dtype='uint8',index=pd.RangeIndex(start=0, stop=8, step=1)),
  'foo_2':pd.Series([0, 1, 0, 0, 1, 0, 0, 0],dtype='uint8',index=pd.RangeIndex(start=0, stop=8, step=1)),
  'foo_3':pd.Series([0, 0, 1, 0, 0, 0, 1, 0],dtype='uint8',index=pd.RangeIndex(start=0, stop=8, step=1)),
  'foo_4':pd.Series([0, 0, 0, 1, 0, 0, 0, 0],dtype='uint8',index=pd.RangeIndex(start=0, stop=8, step=1))},
  index=pd.RangeIndex(start=0, stop=8, step=1))

vs

{'foo_1': {0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 1, 6: 0, 7: 1}, 
 'foo_2': {0: 0, 1: 1, 2: 0, 3: 0, 4: 1, 5: 0, 6: 0, 7: 0}, 
 'foo_3': {0: 0, 1: 0, 2: 1, 3: 0, 4: 0, 5: 0, 6: 1, 7: 0}, 
 'foo_4': {0: 0, 1: 0, 2: 0, 3: 1, 4: 0, 5: 0, 6: 0, 7: 0}}

以下のためのdu上記の、それは、列の型を保持します。たとえば、上記のテストケースでは、

du.equals(pd.DataFrame(du.to_dict()))
==> False

理由du.dtypesであるuint8pd.DataFrame(du.to_dict()).dtypesされますint64

Related questions

MORE COOL STUFF

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする&nbsp;

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

2021 年 6 月 8 日にニューヨーク市で開催された covid-19 パンデミックで亡くなった人々の命を偲び、祝うために、ネーミング ザ ロスト メモリアルズが主催するイベントと行進の最中に、グリーンウッド墓地の正門から記念碑がぶら下がっています。週末、ジョー・バイデン大統領は、covid-19 パンデミックの終息を宣言しました。これは、過去 2 年以上にわたり、公の場でそうするための長い列の中で最新のものです。

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

オハイオ州のエミリー・デシャネル みんな早く来て、ボーンズが帰ってきた!まあ、ショーボーンズではなく、彼女を演じた俳優. エミリー・デシャネルに最後に会ってからしばらく経ちました.Emily Deschanel は、長期にわたるプロシージャルな Bones の Temperance “Bones” Brennan としてよく知られています。

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

どうやら、ドナルド・トランプに近い人々は、今月初めにFBIによって家宅捜索された彼のMar-a-Lago財産からの映像を公開するよう彼に勧めています. 前大統領はテープを公開するかどうかを確認していませんが、息子はフォックス・ニュースにそうなるだろうと語った.

Andor は、他の Star Wars ショーから大きな距離を置きます。

Andor は、他の Star Wars ショーから大きな距離を置きます。

アンドールの一場面。数十年前、ジョージ・ルーカスがスター・ウォーズのテレビ番組を制作するのを妨げた主な理由は、お金でした。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language