amdc19
@amdc19

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

文字列のdataframeが全部nanで出力の謎

質問

pythonで文字列のdataframeであるf2にカラムをつけて文字列のdataframeのf3に
したいのですが、f3を出力したら全部nanになってしまいます。何故でしょうか?

ソースコード

f3=DataFrame(f2,columns=['data1','data2'],dtype='str'
                        )
print(f3)
0

3Answer

疑問の解消にはならないですが…

f3 = pd.DataFrame(f2.values, columns=['data1','data2'],dtype='str')

でも所望の振る舞いをします。

1Like

f2にカラムを増やしただけで、内容を代入していないからでは?
それとも、nanではなく空文字になることを期待していたということでしょうか?

>>> import pandas as pd
>>> f2 = pd.DataFrame(['a', 'b'], columns=['data1'],dtype='str')
>>> f2
  data1
0     a
1     b
>>> f3 = pd.DataFrame(f2, columns=['data1','data2'],dtype='str')
>>> f3
  data1 data2
0     a   nan
1     b   nan
>>> f3['data2'] = ['c','d']
>>> f3
  data1 data2
0     a     c
1     b     d
>>> f4 = pd.DataFrame([['a','b'],['c','d']],columns=['data1','data2'],dtype='str')
>>> f4
  data1 data2
0     a     b
1     c     d
0Like

Comments

  1. @amdc19

    Questioner

    回答ありがとうございます。いえ内容はしっかり代入しています。実際はf2はcsvファイルから読み取った25行2列のDataFrameなんです。f2を出力するとしっかり文字が出力されるのに、それにcolumnsを足したf3は何故か全てnanになってしまうんです。
  2. 私が書いたコードのように、簡単なサンプルデータを示していただけないでしょうか?
    質問を編集していただくのがいいと思います。
    解決したのならよかったです。

f2.columns=['data1','data2']にしたらいけました…何故上の書き方では無理なんでしょうね…
)

0Like

Your answer might help someone💌