dtypes更改为Pandas中的大型数据集

时间:2014-07-23 10:50:30

标签: python numpy pandas machine-learning scipy

所以我使用pandas从CSV文件创建数据框,我有一个dtype datetime的列。这与较小的数据集一样有效。如果数据集很大,我在此列上执行的操作会将其更改为对象而不是数据时间。有没有办法保存dtypes?我尝试使用iloc或ix与数据帧,但这没有用。以下是我的一些代码以及问题所在。

twitterDataFrame['CreatedAt'] = twitterDataFrame['CreatedAt'].map(lambda x: pandas.to_datetime(x))
twitterDataFrame['CreatedAtForCalculations'] = twitterDataFrame['CreatedAt']

问题出现在下一组代码的第3行。它抱怨tweetsByEachUser['CreatedAtForCalculations'].first()tweetsByEachUser['CreatedAtForCalculations'].last()是字符串,它无法计算字符串的否定。

# Frequency of Tweets
twitterDataFrame = twitterDataFrame.set_index(['CreatedAt'])
tweetsByEachUser = twitterDataFrame.groupby('UserID')
numberOfHoursBetweenFirstAndLastTweet = (tweetsByEachUser['CreatedAtForCalculations'].first() -     tweetsByEachUser['CreatedAtForCalculations'].last()).astype('timedelta64[h]')

我试过了

twitterDataFrame.ix['CreatedAtForCalculations':].dtypes

但这也不起作用。有谁知道这个解决方案?

来自df.info

的数据样本
  Int64Index: 21836 entries, 0 to 21835
  Data columns (total 17 columns):
  CreatedAt                   21836 non-null object
  ActualTweet                 21836 non-null object
  InReplyToStatusID           21836 non-null bool
  InReplyToUserID             21836 non-null bool
  UserID                      21836 non-null object
  RetweetCount                21836 non-null object
  FavouriteCount              21836 non-null object
  Hashtags                    21836 non-null bool
  URL                         21836 non-null bool
  MediaURL                    21836 non-null bool
  MediaType                   21836 non-null object
  UserMentionID               21836 non-null bool
  PossiblySensitive           21836 non-null object
  Language                    21836 non-null object
  Classifier                  21836 non-null object
  TweetLength                 21836 non-null object
  CreatedAtForCalculations    21836 non-null object
  dtypes: bool(6), object(11)None

谢谢:)

0 个答案:

没有答案